STM32 HAL库的串口DMA使用HAL_UART_DMAStop()函数时无法再次接收到数据
当串口接收到数据后产生空闲中断,在中断函数里调用HAL_UART_DMAStop(),停止DMA接收数据,当再次接收数据时,调用HAL_UART_Receive_DMA()函数后无法接收数据。因此在使用 HAL_UART_Receive_DMA( );前需要再次调用MX_USART2_UART_Init();
·
当串口接收到数据后产生空闲中断,在中断函数里调用HAL_UART_DMAStop(),停止DMA接收数据,当再次接收数据时,调用HAL_UART_Receive_DMA()函数后无法接收数据。
后来在ST官方论坛搜到一个问答:
MX_USART2_UART_Init();
HAL_UART_Receive_DMA( );
因此在使用 HAL_UART_Receive_DMA( ); 前需要再次调用MX_USART2_UART_Init();即可解决。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)