串口DMA接收问题
问题:一帧数据只接收到1个字节(或者第一帧只接受到1个字节)
解决方法:
①在初始化函数中添加:HAL_UART_Receive_DMA(&huart,RxDMABuf_,RXBUF_SIZE);
②在回调函数中要清理状态。
1 __HAL_UART_CLEAR_IT(&huart6,UART_CLEAR_PEF 2 |UART_CLEAR_FEF 3 |UART_CLEAR_NEF 4 |UART_CLEAR_OREF 5 |UART_CLEAR_IDLEF 6 |UART_CLEAR_TCF 7 |UART_CLEAR_LBDF 8 |UART_CLEAR_CTSF 9 |UART_CLEAR_RTOF 10 |UART_CLEAR_WUF 11 |UART_CLEAR_CMF 12 |UART_CLEAR_TXFECF);
注:如还不能正常,先把串口初始化和DMA接收放到最后(主while循环前),运行前先不要在串口中断中打断点,全速运行下看缓存区是否正常
可联系522671638@qq.com协助你解决这个问题