各位,本人正在写一个调用硬件的程序,由于这个硬件涉及到起始位。上不百度找也找不到,msdn也找不到,
没办法,只有请教各位了,帮帮忙啊

解决方案 »

  1.   

    起始位:
    这个有设置么?只有数据位长度吧。起始位都是0
    停止位:
    StopBits
      

  2.   

    建议上MSDN参考一下 SerialPort类,你说的起始位应该是“数据位” DataBits 吧
      

  3.   


        public class MeterSetup
        {
            public int Recold;
            public int DataBits;
            public int BufferSize;
            public string ComPort;
            public int BaudRate;
            public string Parity;
            public string StopBits;
        }
      private void Begin(MeterSetup mst)
            {
                if (SpReceive == null) SpReceive = new SerialPort();
                SpReceive.DataReceived += new SerialDataReceivedEventHandler(SpReceive_DataReceived);            SpReceive.ReceivedBytesThreshold = mst.Recold;      //接收多少数据后触发事件
                SpReceive.DataBits = mst.DataBits;
                SpReceive.ReadBufferSize = mst.BufferSize;
                SpReceive.PortName = mst.ComPort;
                SpReceive.BaudRate = mst.BaudRate;            switch (mst.Parity)
                {
                    case "偶校验":
                        SpReceive.Parity = Parity.Even;
                        break;
                    case "奇校验":
                        SpReceive.Parity = Parity.Odd;
                        break;
                    case "无":
                        SpReceive.Parity = Parity.None;
                        break;
                    case "标记":
                        SpReceive.Parity = Parity.Mark;
                        break;
                    case "空格":
                        SpReceive.Parity = Parity.Space;
                        break;
                }            switch (mst.StopBits)
                {
                    case "0":
                        SpReceive.StopBits = StopBits.None;
                        break;
                    case "1":
                        SpReceive.StopBits = StopBits.One;
                        break;
                    case "1.5":
                        SpReceive.StopBits = StopBits.OnePointFive;
                        break;
                    case "2":
                        SpReceive.StopBits = StopBits.Two;
                        break;
                }            try
                {
                    SpReceive.Open();
                    if (readBuffer == null) readBuffer = new byte[SpReceive.ReadBufferSize];
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }