You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32G474 HRTIM SETx1/RSTx1中断不触发HRTIM1_TIMA_IRQHandler

STM32G4 HRTIM SET/RST事件标志置位但无法触发中断排查

最高概率遗漏配置

  • 检查对应事件的DMA使能位
    HRTIM的事件请求路由是互斥的:如果HRTIM_TIMx_DMAEN寄存器中SET1DMAEN/RST1DMAEN/SET2DMAEN/RST2DMAEN位被置1,对应事件产生后只会发送DMA请求,不会向NVIC发送中断请求。这种场景下TIMAISR寄存器的对应中断标志会正常置位,但完全不会触发HRTIM1_TIMA_IRQHandler执行。
    直接读HRTIM1_TIMA->DMAEN寄存器值,确认上述4个DMA使能位为0即可,不要完全信任HAL库的配置接口,部分版本的HAL驱动在使能SET/RST中断时,不会自动关闭对应事件的DMA请求路由。

次高频遗漏配置

  • 检查对应输出通道的输出使能位
    STM32G4的HRTIM外设明确要求:SET1x/RST1x/SET2x/RST2x类输出相关中断,必须在对应输出通道使能的前提下才会向NVIC发送中断请求。
    核对HRTIM1->OENR寄存器的TA1OEN、TA2OEN位是否置1。哪怕不需要把HRTIM输出接到外部引脚,只要用到这类输出事件中断,就必须置位对应OEN位,否则只会置位ISR标志,不会触发中断。
  • 排查中断标志提前被清除的问题
    检查其他可正常触发的HRTIM中断服务逻辑,确认不存在“读取ISR寄存器后一次性清除所有置位标志”的写法。如果SET/RST事件的标志在NVIC接收到中断请求前就被其他流程提前清除,也会出现标志曾置位但不触发ISR的情况,该场景出现概率较低。

快速验证步骤

  1. 直接向HRTIM1_TIMA->DMAEN寄存器写0,关闭TimerA所有事件的DMA请求
  2. 置位HRTIM1->OENR的TA1OEN、TA2OEN位,使能TimerA两个输出通道
  3. 通过写TIMERA的SST、RST位触发软件事件,确认中断是否正常响应

内容的提问来源于stack exchange,提问作者Venkatesh Chilapur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:39:32