UART传输有三种方式,而DMA的应用采用阻塞式接收指定的数据长度,效率较低,而应用DMA空闲方式可提高其效率。
参考帖子:http://blog.csdn.net/youmeichifan/article/details/51750435
帖子中应用参考,其中修改了几个内容:
1.空闲中断为连续接收;
2.去除发送完成回调函数HAL_UART_TxCpltCallback,而在发送函数中,等待huart的发送状态位。
DMA方式在连续发送数据应用当中,会产生丢失,所以在发送前需检查发送状态。