日期:2014-05-18  浏览次数:21076 次

串口serialport.Read()接收一部分数据
string data=""
int count=serialport.ByteToRead;
byte[] byteBar=new byte[count];
serialport.Read(byteBar,0,count)
for(int i=0;i<byteBar.length;i++)
{
  data+=()byteBar[i];
}
我是接收多条数据包,每条数据包是以~开头\r结尾的,可是有时侯得到的
第一个data="~34532355";
第二个data="345\r~23425235634\r"
有时候得到的是第一个data="~3";
第二个data="4532355345\r~23425235634\r"

我想要得到的是
第一个data="~345323554532355345\r";
第二个data="~23425235634\r";


请不要说循环Read请给出代码,谢谢。用ReadLine(),因为下位机发送完数据之后没有写\r\n所以就不能用。

------解决方案--------------------
用ReadLine也是可以的,加上:
serialPort.NewLine = "\r";
------解决方案--------------------
探讨
谢谢各位啊!我用serialport.ReadTo("\r");解决了,如果你发送三条命令,只返回了两个数据包,怎么判断哪条命令返回了哪个数据包啊!