极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12516|回复: 0

modbus数据通过串口输出2串后不全

[复制链接]
发表于 2017-4-28 18:26:51 | 显示全部楼层 |阅读模式
arduino作为监听设备,收取modbus主从通信数据,一串数据4帧,每帧数据长度不一,预计收取保存到SD卡里面,
今天只是想通过串口看一下是否完整,结果两串数据后就开始漏了

整个loop()里面就这么一个函数,
  1. while (Serial.available() )
  2. {
  3. Serial.println(Serial.read(),HEX);
  4. Serial.println();
  5. delay(4);
  6. }
复制代码


后来加了句清除缓冲区操作,问题一样
  1. while(Serial.read() >= 0){}
复制代码



其中一帧数据7E7EE7F0开头,字符长度20,主程序如下,到一直无输出,直接在arduino串口中输入如下开头的20字符串,立马输出显示,不知道什么原因?有没有SD卡保存过modbus数据的,指导一下
  1. while (Serial.available() )
  2.           {
  3.    
  4.     char inChar = Serial.read();
  5.      inString += (char)inChar;
  6.      delay(4);
  7.      if (inString.startsWith("7E7EE7F0") && inString.length() == 20)
  8.        {
  9.          Serial.print(inString);
  10.          
  11.           }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 16:01 , Processed in 0.041539 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表