关于stm32F4的HAL_UART_Receive_IT和HAL_UART_Transmit一起用就出问题。

我原有的例程中,一直用HAL_UART_Receive_IT开启接收,且在中断接收单字节数据,这样做的优点是我可以自定义接收不同长度的数据帧,并且便于解析。缺点就是每个字节进入一次中断很低效。而且最近遇到个问题,在用HAL_UART_Transmit持续发数据时,会出现接收数据丢帧的情况,导致逻辑不能完成。故现在将中断接收改为DMA接收,解决了这个问题。

1.下图为中断服务函数

2.下图为回调函数内容

 3.串口的资源配置

 4.DMA初始化  一定要在串口初始化前面,否则就会发现每次只能接收到1个字节

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>