STM32|STM32 UART调试异常小结

【STM32|STM32 UART调试异常小结】最近在做一个测试主板硬件串口功能的软件,UART,RS485接口,用的是STM32,A(为主板),B(为测试小板)。
测试方法:B上的按键触发,发送一个指令发给A,A接收到后回传另一条指令给B,B接收到指令后,判别指令是否正常,若正常,则LED灯闪烁。
第一步,两个小板分别和电脑调通。
第二步,两个小板互联互调:
测试时,发现一个问题:B传给A的,A可以正常接收;A回传给B的,B无任何反应。
检查了各种设置,均无法解决。后面想到是否A回传指令太快,B来不及反应。尝试了一下延时,在A回传给B的时候,先延时10ms,再回传指令给B,此时B接收正常。进一步追溯,发现在B发送指令的前后均有延时,都是5ms。将B发完指令后的延时改为1ms,将A部分添加的延时去掉,测试A和B的收发也都正常。
以上说明在串口调试时,双方的时间同步非常重要,对时间的敏感度非常高。尤其是在一方延时,对另一方的影响很大,必须也要做对应的处理,否则会造成收发不同步,无法正常通讯。

    推荐阅读