你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H747XI HRTIM无法中断

[复制链接]
onebyte 提问时间:2022-3-26 13:48 / 未解决

我在程序中设置TIME通道2的PWM输出,并产生比较中断,引脚确实产生了PWM,但是不能进入比较中断服务程序,然后进行了如下验证,还是不能产生中断

1> TIME的中断使能寄存器,全部使能了,如下图所示

00001.png

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

00002.png

3> TIME产生了中断标志,仍不能进入中断服务程序,在来到下一步,NVIC设置和状态

4> 中断挂起状态SETPEND108为HRTIM TIME的标志位,状态没有为1,状态没有挂起

00004.png

00003.png

5> 手动设置中断挂起状态SETPEND108为1,可以进入中断服务程序

这是为什么,是我哪里还缺少设置吗,找遍了手册也没找到这方面资料,看一些例程也没有HRTIM中断方面的,有没有知道这块的,这是为什么?

收藏 评论3 发布时间:2022-3-26 13:48

举报

3个回答
STMCU-管管 回答时间:2022-3-30 09:49:22
可以参考类似的实例,引脚配置好了吗?可以先试下用高级/通用定时器输出PWM,成功了再换HRTIM。或许是主函数里的TIM_SetCompare1没换成TIM_SetCompare2。
HRTIM_OutputCfgTypeDef HRTIM_TIM_OutputStructure;//配置输出特性,高低电平等
HRTIM_BaseInitTypeDef HRTIM_BaseInitStructure;//配置基本参数,这部分和普通定时器一样
HRTIM_TimerInitTypeDef HRTIM_TimerInitStructure;  //配置不同模式
HRTIM_TimerCfgTypeDef HRTIM_TimerWaveStructure;//配置波形参数,错误等
HRTIM_CompareCfgTypeDef HRTIM_CompareStructure;//配置比较寄存器
用以上几个部分就能产生最简单的PWM波形
onebyte 回答时间:2022-3-30 18:11:42

STMCU-管管 发表于 2022-3-30 09:49
可以参考类似的实例,引脚配置好了吗?可以先试下用高级/通用定时器输出PWM,成功了再换HRTIM。或许是主函 ...

我在提问时,已经说过,PWM设置产生已经实现,没有问题;问题是在发生比较事件的时候,不能进入中断服务程序,可能是我没有阐述清楚问题,谢谢您的回答。

onebyte 回答时间:2022-3-30 18:15:53

经过ST的技术服务指导,和本人的努力,终于解决了问题。

经过验证,不能进入中断服务程序的原因是寄存器设置的顺序有关,现在只列出关键点

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,这样的顺序也是可以进入比较中断。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版