原因是这样的
1.我要发送1K数据去串口。
2.然后用AT组装起来。
问题:
1.在回显demo的while(1)加入 printf ”xx“
然后我发现我这个1K的数据发送过去,函数居然进入了50多次while,
说白点就是,1K数据还没接收完毕,单片机就急着去处理了。
然后解决方案:
在
HAL_UART_RxCpltCallback增加了一个统计进入次数RXNE_Count
然后再 在main间隔一段时间判断下这个RXNE_Count 有没有变化,
没有就确认是1K数据接收完毕了,类似IDLE。
性能差别:
原来的发送到接收回显间隔8ms
加了后间隔14ms,
差别不算大。