stmf103基于HAL库的串口+DMA接受、发送实现分析
我们发现此函数会两次判断,首先判断是否发送,然后中断发送,并设置一些标志位,然后判断是否还在接受,后续操作同上。其中非常关键一点是UART_EndRxTransfer()和UART_EndTxTransfer()函数,以UART_EndTxTransfer()函数代码为例(如下),),我代码逻辑是初始化调用DMA读取数据,然后在串口UART_FLAG_IDLE中断中读取DMA传输数量再打印到上位机上,结果能正常工作,但是每次DMA数据传输量都为0。解决方法我通过设置一个is_stop标志位,只要一调用。
原创
2022-08-23 00:52:15 ·
1471 阅读 ·
1 评论