stm32 hal 串口只可以接收到一包数据数据

stm32 串口笔记

问题
利用串口中断接收数据,只可以接收到一包数据数据

产生问题原因
串口产生了ORE过载错误,所以下一次再次使能接收中断,就不可以再次接收
解决办法就是
清除错误状态和数据寄存器

__HAL_UART_CLEAR_OREFLAG(&huart2);//
  1. 状态寄存器读取一次即可以实现清零
  2. 清除状态以后再次使能中断接收

HAL_UART_Receive_IT(&huart2,uart2_data,32);

参考截图

猜你喜欢

转载自blog.csdn.net/u010261063/article/details/119537360