股票

stm32串口接收数据丢失问题

今天调试stm32的串口接收中断,发现一个5字节的数据,总会出现丢失,波特率 115200。检查接收函数,发现没有明显的bug,就是这个数据格式进行特定处理时,两个处理函数的距离比较远。函数1处理完成后,会清掉标志,让函数2不再处理。然后就想,会不会在函数1跳过时,再处理中间两个函数的判断过程中,串口数据来了,但是还没到函数2,或者是经过函数1判断的时候,串口还没接收完毕,到函数2刚好接收完,然后导致本该函数1处理的数据到了函数2上,造成bug。尝试着调整函数1和函数2的位置,把函数1紧挨着放在函数2之前,bug消失了。竟然真是这个原因!!!

stm32f103的工作频率72M,按道理已经够高了,没想到还会出现这种低级的故障,后面换101不知道还会不会有别的风险。

打赏
原文链接:,转发请注明来源!

发表评论