[STM32G4] 定时器中断偶尔不触发,像是被某个外设打断了节奏

[复制链接]
181|19
公羊子丹 发表于 2025-11-4 07:18 | 显示全部楼层 |阅读模式
最近在调PWM输出时发现,定时器中断有时完全不触发,尤其是在CAN总线有大量报文的情况下。感觉像被别的外设“打断节奏”一样。怀疑是中断优先级或者DMA争用的问题,但改了几次配置都没变化。有没有人遇到过类似现象?
Clyde011 发表于 2025-11-4 07:24 | 显示全部楼层
确实挺诡异的,我上次遇到就像芯片短暂“发呆”了一样。
 楼主| 公羊子丹 发表于 2025-11-4 07:25 | 显示全部楼层
我之前遇到过类似的,最后发现是NVIC优先级设反了。
周半梅 发表于 2025-11-4 07:26 | 显示全部楼层
有可能是CAN中断太频繁,把定时器中断延后了。
帛灿灿 发表于 2025-11-4 07:27 | 显示全部楼层
你试过单独关掉CAN测试一下吗?这样能排除干扰。
童雨竹 发表于 2025-11-4 07:28 | 显示全部楼层
我感觉像DMA和中断同时抢总线,G4这系列挺常见的。
万图 发表于 2025-11-4 07:30 | 显示全部楼层
看下是不是HAL库有个地方屏蔽了中断标志。
Wordsworth 发表于 2025-11-4 07:31 | 显示全部楼层
调试时打开中断计数器看看触发频率会不会突然掉。
Bblythe 发表于 2025-11-4 07:32 | 显示全部楼层
我建议加个GPIO翻转验证下定时器有没有真正进ISR。
Pulitzer 发表于 2025-11-4 07:32 | 显示全部楼层
也有可能是Cube自动生成的初始化顺序不对。
Uriah 发表于 2025-11-4 07:33 | 显示全部楼层
我印象里CAN和TIM在同一个总线域里,带宽可能不够。
麻花油条 发表于 2025-11-4 17:00 | 显示全部楼层
中断优先级冲突吧
classroom 发表于 2025-11-4 18:01 | 显示全部楼层
启用中断嵌套
cr315 发表于 2025-11-4 19:02 | 显示全部楼层
降低CAN波特率或减少报文频率,释放总线带宽。
duo点 发表于 2025-11-4 20:02 | 显示全部楼层
为CAN配置双缓冲DMA,减少CPU介入时间,避免长时间占用总线。
elephant00 发表于 2025-11-4 17:03 | 显示全部楼层
禁用全局中断保护临界区
elephant00 发表于 2025-11-4 17:03 | 显示全部楼层
对简单变量使用__LDREX/__STREX原子指令,或通过RTOS信号量同步。
flycamelaaa 发表于 2025-11-4 21:03 | 显示全部楼层
调整中断优先级,定时器中断要不被CAN阻塞。
jcky001 发表于 2025-11-4 21:04 | 显示全部楼层
检查总线分配和DMA配置,减少总线冲突。
onlycook 发表于 2025-11-4 17:35 | 显示全部楼层
保护共享资源,避免竞态条件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

222

主题

6826

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部