基于STM32 485串口出现漏包 丢包的现象
回溯一下整个起因,最近做了一个简单转接班,需要将can接收到数据以485串口转发出去,通过一顿蛮干,基本实现了其转发功能。使用USB转485工具,能将数据完整的实现收发功能,但与主板连接后,却会出现丢包、漏包的情况。
这个情况当然是不被允许的,是不对的,是错误的。所以就查阅资料,发现485通讯是容易出问题的,容易被干扰的,和收发芯片的硬件也会有关系等。
总结了这些出错的原因,然后再回头看自己编写的代码,发现自己的代码只对数据包的报文头进行了判断,这容易导致乱码、漏一个字节这种偶然事件的影响。
解决方案:增加判断机制,增加代码的健壮性,对数据包中的头尾、长度、校验位各级进行判断机制后,数据收发就逐渐稳定。
问题很简单,但确实是困扰了我几天,所以在此记录,希望能帮助到你们。