modbus数据通过串口输出2串后不全
arduino作为监听设备,收取modbus主从通信数据,一串数据4帧,每帧数据长度不一,预计收取保存到SD卡里面,今天只是想通过串口看一下是否完整,结果两串数据后就开始漏了
整个loop()里面就这么一个函数,
while (Serial.available() )
{
Serial.println(Serial.read(),HEX);
Serial.println();
delay(4);
}
后来加了句清除缓冲区操作,问题一样
while(Serial.read() >= 0){}
其中一帧数据7E7EE7F0开头,字符长度20,主程序如下,到一直无输出,直接在arduino串口中输入如下开头的20字符串,立马输出显示,不知道什么原因?有没有SD卡保存过modbus数据的,指导一下
while (Serial.available() )
{
char inChar = Serial.read();
inString += (char)inChar;
delay(4);
if (inString.startsWith("7E7EE7F0") && inString.length() == 20)
{
Serial.print(inString);
}
页:
[1]