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