STM32串口 断点调试 中断异常

使用了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);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值