单片机的Modebus通讯程序中,程序中如何判断数据接收完毕??
发布网友
发布时间:2022-05-12 21:37
我来回答
共3个回答
热心网友
时间:2023-10-24 02:38
有两种方法:
1、规定一个超时时间,当一定时间内没有收到字符时,就认为一个帧接收完毕。
2、主机根据发出的MODBUS指令,可以算出从机应该回复的帧长度(字节数),所以当主机接收到足够数量的字符后,认为接收完毕。
一般来说,使用第一种方法或者两种同时使用。第二种方法会加快总线速度。但不能单独使用第二种方法,否则在通讯出问题的情况下总线就完蛋了
热心网友
时间:2023-10-24 02:38
通过波特率计算接收每个字节需要的时间,假设计算结果为T,
在RTU模式下,超过3.5T没有数据即认为接收完成。
热心网友
时间:2023-10-24 02:39
有个帧长度在你的接受串里,对帧长度比较,等就是这一帧结束了!再对它进行CRC校验看接受有错没!