uart通信期间上位机断电导致STM32H743卡死或崩溃
配置 uart 2 DMA 发送 中断接收
通过 keil debug 发现
在 上位机断电或重启时,STM32H743 uart FE标识位()被置1, 也就是出现了帧错误,
代码中没有清理帧错误标志,频繁进中断导致卡死
#define UART_FLAG_FE USART_ISR_FE /*!< UART frame error
解决方法:
在 uart中断处理函数中,及时清理 帧错误
__HAL_UART_CLEAR_FEFLAG(&huart2);
或者
__HAL_UART_CLEAR_FLAG(&huart2,UART_FLAG_FE);
这种问题很普遍
类似的错误还有,噪声错误 校验位错误
都可以在终端处理函数中 做一下清理,以防万一
另外 keil 的debug 功能真的好用,可以看到具体的寄存器,与代码和手册结合 是解决问题利器哈。