使用了stm32L433 是M4的内核
采用了中断接受数据的方式,正常处理的时候,都是正常的。但是当使用keii5 断点调试的时候。中断异常了,明明没有数据接受了,但是依旧出现不停的进入中断。
调试的时候,看到ISR寄存器的OER位,正常的时候是reset的状态,一旦断点调试,就会出现溢出。
使用的hal库。
__HAL_UART_GET_IT(&huart2,UART_IT_ORE);使用这个来获取中断的情况是无效的 返回值是RESET。
因为没有失能 ERR 中断。
值得一提的事,一旦串口初始化,开启UART_IT_RXNE中断,OER溢出中断自动开启。
使用的清楚溢出中断的方式是: 读取的是flag标志位,不是中断产生标志位
if((__HAL_UART_GET_FLAG(&huart2, UART_FLAG_ORE) != RESET))
{
__HAL_UART_CLEAR_OREFLAG(&huart2);
}