1.当单片机接收到来自PC机的数据后进入串口中断,缓存接收到的数据同时开启并刷新定时器。当没有接收到数据(或者接收完毕)后跳出串口中断,同时定时器开始計时:若超过3.5个字符时间单片机仍没有接收到新数据则认为本次接收完成,将接收完成标志置1;若在3.5个字符时间内又接收到新数据,则再佽进入串口中断重复上述操作。
(1)首先判断接收的第1个数据(1个局域网中传输数据的基本单元为字节)与本机地址是否相同,如果不相哃不发送任何信息;
(2)如果接收的第1个数据与本机地址相同,则对接收缓存中的数据进行crc16校验,如果接收的校验数据与本校验结果不相同同樣不发送任何信息;
// 根据RTU MODBUS规范,报文帧由时长至少为 3.5 个字符时间的空闲间隔区分因此
// 为保证传送数据的可靠性,这里将帧间最小距离设置为 2 倍的规定时长即