STM32
直播中

王银喜

7年用户 2397经验值
私信 关注
[问答]

STM32H747XI HRTIM无法中断怎么解决?

我在程序中设置tiME通道2的PWM输出,并产生比较中断,引脚确实产生了PWM,但是不能进入比较中断服务程序,然后进行了如下验证,还是不能产生中断
1>TIME的中断使能寄存器,全部使能了,如下图所示

2>TIME产生了CMP2、REP等中断标志,如下图所示

3>TIME产生了中断标志,仍不能进入中断服务程序,在来到下一步,NVIC设置和状态
4>中断挂起状态SETPEND108为HRTIM  TIME的标志位,状态没有为1,状态没有挂起


5>手动设置中断挂起状态SETPEND108为1,可以进入中断服务程序
这是为什么,是我哪里还缺少设置吗,找遍了手册也没找到这方面资料,看一些例程也没有HRTIM中断方面的,有没有知道这块的,这是为什么?

回帖(1)

王亮

2024-3-28 16:43:10
经过验证,不能进入中断服务程序的原因是寄存器设置的顺序有关,现在只列出关键点
HRTIM_TIMxCR的PREEN,预装载使能,
设置PREEN为1,使能预装载,启动HRTIM定时器TIME,然后使能TIME中断HRTIM_TIM_IT_CMP2,这样的顺序是无法进入比较中断的。
设置PREEN为0,不使能预装载,启动HRTIM定时器TIME,然后使能TIME中断HRTIM_TIM_IT_CMP2,这样的顺序是可以进入比较中断。
设置PREEN为1,使能预装载,使能TIME中断HRTIM_TIM_IT_CMP2,然后启动HRTIM定时器TIME,这样的顺序也是可以进入比较中断。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分