我们在给串口发送指令后,串口会发送一串指令回来,但是有的下位机回复时间不固定,当你不知道它什么时候回复的时候,手动延时过短,使用串口的 Read 指令时会存在读取数据不全的现象。
while(!(SerialPort.BytesToRead > 0))
{
//循环等待
Thread.Sleep(100);
}
//读取
SerialPort.Read(byte[],0,byteNumber);
下位机的发送都是先将字节放到缓冲区,再全部发送,所以先判断缓冲区有无字节,没有就等待,等到有字节就代表下位机回复了,这时候读取就不会出现读取不全的问题。