public void DataReceivedAddress(object sender, SerialDataReceivedEventArgs e)
        {
            byte[] dataR = new byte[_com.BytesToRead];
            _com.Read(dataR, 0, data.Length);
            if (data.Length != 0)
            {                DisposeRecvDataAddress(data);            }
        }代码如上所示,我想问下这样读取串口中的数据,会不会出现这种情况:也就是一条应答数据没有读取完整?

解决方案 »

  1.   

    有可能 所以你跟你下位机通讯的时候也要做个相应的协议
    包头 效验码 内容 效验码 包尾
    来做相应的业务 string ls_RevceDate = "";
     if (AVR.ReceivedBytesThreshold > 0)
     {
         byte[] tmpbuf = new byte[AVR.BytesToRead];
         AVR.Read(tmpbuf, 0, AVR.BytesToRead);
         ls_RevceDate = BitConverter.ToString(tmpbuf).Trim();
     }