51单片机串口接收不定长数据

2020-01-13 18:37发布

请教大神,单片机串口如何接收不定长数据啊 ,比如 0x01+0x03+len+data0....datan CRC_H  CRC_L 写了一下午没啥成果
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
1328616904
1楼-- · 2020-01-15 20:13
miaoguoqiang 发表于 2015-12-21 09:14
就是判断相邻两个数据之间的间隔。比如超过10ms就判定接收完成一帧数据。

谢谢,我解决了  我延时20毫秒  
wkman
2楼-- · 2020-01-16 01:59
遵循 学习 下  标准 modbus 就会明白了
河图洛书
3楼-- · 2020-01-16 04:35
 精彩回答 2  元偷偷看……
xiaobendan
4楼-- · 2020-01-16 05:30
modbus的程序网上有很多,下载一个看看就懂了
1328616904
5楼-- · 2020-01-16 09:40
河图洛书 发表于 2015-12-22 14:20
楼主是怎么解决的,20毫秒是在哪里调的啊?

在发送度寄存器命令之后就开始延时,20ms足够从机返回数据了,20ms内读到就读到了 读不到也执行下面的程序,这样也能防止死机,不知道这样是否妥当
czzhouyun
6楼-- · 2020-01-16 14:23
间隔20ms那是超时处理,这个显然是modbus协议,只要在读取字长字节时改变整个命令的长度就可以了,光处理超时显然不行

一周热门 更多>