你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
配置如下图,串口1优先级最高,但是还是被串口3给打断,如果串口3频繁有数据的话。在该优先级配置下,只将串口1的波特率从115200修改为9600,串口1数据可以完整接收,说明了高速率模式下,优先级并没有起效。
举报
请各位老师指点一下
xmshao 发表于 2025-3-12 17:40 对于G0系列的中断优先级只有抢占优先级,在库函数里的那个设置子优先级的地方无视即可。</p> <p>
感谢您的评论,库函数确实是只有抢占的,所以我也只配置了抢占,串口1优先级直接给了0,其他的都非0了。不过还是这个现象
xmshao 发表于 2025-3-13 14:37 不必客气。</p> <p>
之前用的G070芯片,串口1和3配置的相同抢占等级而且还不是最高的优先级,没有出现这种现象,现在移植到G0B1上出现了。我拿CUBEMX生成的NVIC部分,也就这两条库函数语句
第三季度啦,兄弟们
STM32会存在单个IO口坏掉的情况吗?
STM32L433VCT6 进入STOP模式2之后,功耗依然和正常运行模式没有差别,请教大神
STM32G070RBT6TR ADC采集定点电压误差较大,有没有优化方向
电脑主机一亮一灭启动不了
LIS2MDL X轴数据读取问题
无法完全整片擦除 STM32H Nucleo
周末卡点打卡
使用touchgfx控件modalWindow,显示会有条纹
请各位老师指点一下
而只要是中断模式,都会有执行时间的。
一般应用中都还会有很多其他中断的,用DMA模式就可以很好解决这类问题。
可以肯定,低优先级的中断没法抢占高优先级的,注意配置时,优先级越高数字越小。
你如果使用CubeMx配置的话,在NVIC那里就可以看到各个中断优先级 的配置。
当然,在调试环境里也可以查看各中断的优先级。
感谢您的评论,库函数确实是只有抢占的,所以我也只配置了抢占,串口1优先级直接给了0,其他的都非0了。不过还是这个现象
尽管你目前有这个现象,但这个现象并不能说明高优先级中断 能 被低优先级的抢占。
见不到你的具体代码,还是给些建议与你:
一、确认下优先级的配置;
二、确认下在高波特率前提下,UART1的接收是否总是可靠;
三、UART1接收处理代码有无跟其他关联的地方,容易导致处理速度变慢的情形;
四、UART3收发处理代码里有无临时关闭中断的操作;
之前用的G070芯片,串口1和3配置的相同抢占等级而且还不是最高的优先级,没有出现这种现象,现在移植到G0B1上出现了。我拿CUBEMX生成的NVIC部分,也就这两条库函数语句