我在使用U1开发板接收其他硬件串口发来的数据时,遇到了发送19字节数据,但是只能接收到12字节数据的错误。排查解决过程如下
编译优化
首先查看编译器的设置,是否是O3优化,我之前遇到过O3优化了打印部分字符串导致无法发送的问题。排查发现O2优化,这次不是这个问题。
波特率
经检查,硬件的波特率相同,不存在问题。
数据丢弃
仔细检查每次收不到数据的情况,发现收到的都是前12字节的数据,所以有可能是波特率太高,U1板子每次进入回调函数,导致无法及时处理,发生了数据丢弃的情况。因此,在向U1板子发送数据时,每发送一字节数据后延时1ms再发下一个数据。这样设置之后,U1就可以正常接收19字节的数据。
文章来源:芯片开放社区
原文链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.1b87180fuBSea0&id=3805397207386558464