串口DMA收发出现ORE错误
STM32 增加 WiFi + 以太网的低成本方案
stm32g071的rtc初始化后会直接进入中断怎么办?
HAL_TIM_OC_SetConfigChannel 因 override_state 参数触发断言报错
在RS485通信中如何有效避免误码,距离5米,速率115200
在 STM32Cube 中配置正交编码器模式
STM32G030死机问题
STM32F103C8T6 上电后无法通过串口发出数据的问题?
stm32H723 tim23和tim24 中间对齐模式无效
UART中IDLE 中断与 RTO 接收超时中断有什么区别
微信公众号
手机版
请各位老师指点一下
而只要是中断模式,都会有执行时间的。
一般应用中都还会有很多其他中断的,用DMA模式就可以很好解决这类问题。
可以肯定,低优先级的中断没法抢占高优先级的,注意配置时,优先级越高数字越小。
你如果使用CubeMx配置的话,在NVIC那里就可以看到各个中断优先级 的配置。
当然,在调试环境里也可以查看各中断的优先级。
感谢您的评论,库函数确实是只有抢占的,所以我也只配置了抢占,串口1优先级直接给了0,其他的都非0了。不过还是这个现象
尽管你目前有这个现象,但这个现象并不能说明高优先级中断 能 被低优先级的抢占。
见不到你的具体代码,还是给些建议与你:
一、确认下优先级的配置;
二、确认下在高波特率前提下,UART1的接收是否总是可靠;
三、UART1接收处理代码有无跟其他关联的地方,容易导致处理速度变慢的情形;
四、UART3收发处理代码里有无临时关闭中断的操作;
之前用的G070芯片,串口1和3配置的相同抢占等级而且还不是最高的优先级,没有出现这种现象,现在移植到G0B1上出现了。我拿CUBEMX生成的NVIC部分,也就这两条库函数语句