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

关于STM32F407 TIM2定时器的 诡异问题

[复制链接]
james-351009 提问时间:2014-12-13 16:31 /
本帖最后由 james-351009 于 2014-12-13 16:33 编辑

最近在使用STM32F407的定时器,遇到一个诡异的问题。
我用TIM2做PWM波形输出,用了一个OC脚。中断的配置是只有更新事件产生中断。
在每个更新事件产生时,UIF位由硬件置位,系统进入中断例程。那么问题来了,在UIF没有置位的时候
也能进中断例程吗?这个现象是偶尔产生,而且这个中断是紧跟在正常更新中断例程之后产生的!
在中断使能寄存器里,我只使能了UIE位!而这个莫名其秒的中断,是怎么回事呢?!
下面是在进入那个中断时的寄存器截图:
QQ图片20141213154636.jpg
只使能了 UIE
QQ图片20141213154743.jpg
QQ图片20141213154911.png 注意进入中断后,UIF没有置位!!!!诡异!!!



QQ图片20141213155039.jpg
这是我加的监测程序,在中断例程的最前面,也没有检测UIF置位!


上面是中断时的寄存器截图

请各位大神以及STM32官方能给个说法!谢谢了!



收藏 评论21 发布时间:2014-12-13 16:31

举报

21个回答
巅峰残狼 回答时间:2014-12-13 21:32:53
诡异,帮顶
james-351009 回答时间:2014-12-15 09:04:35
本帖最后由 james-351009 于 2014-12-15 09:08 编辑

希望有更多大神关注啊!能提供线索者有奖
补充一下,这个中断的优先级是最高的,另外我也使用TIM3,TIM4无此现象,而TIM2唯一特殊的是32BIT的.
james-351009 回答时间:2014-12-15 11:25:39
路过了30几个大神,帮顶下哦!或许以后你们也以遇到这样的问题
回答时间:2014-12-15 11:28:39
楼主发生的问题是,TIM没有关闭,直接通过使能中断来实现关闭中断的功能。那么我建议开启使能之前先关闭TIM功能,再使能,再开启TIM功能。这样测试一下是否还会发生这个问题。
james-351009 回答时间:2014-12-15 13:17:22
本帖最后由 james-351009 于 2014-12-15 13:18 编辑
安 发表于 2014-12-15 11:28
楼主发生的问题是,TIM没有关闭,直接通过使能中断来实现关闭中断的功能。那么我建议开启使能之前先关闭TIM ...

感谢大神显身。
TIM2中断例程相当于一个计数功能,在使用前配置好,开启中断,再使能TIM2。在计数没有达到预期之前,是不会使能和关闭中断的。上述现象是发生在这个过程中的,并未操作任何TIM2的寄存器。不知道我说明白没有
回答时间:2014-12-15 14:08:00
能不能发一下你的TIM配置。我看截图中TIF中断产生过。
回答时间:2014-12-15 14:09:01
手册中写到It is set when the counter starts or stops when gated mode is selected.你是否设置了GATED模式?
james-351009 回答时间:2014-12-15 21:36:01
安 发表于 2014-12-15 14:09
手册中写到It is set when the counter starts or stops when gated mode is selected.你是否设置了GATED模 ...

没有设置GATED模式。相同配置下TIM3,TIM4没有此问题出现。
上图中的TIF是触发了,但我没有使能相应的中断位,DIER中可以看到。
回答时间:2014-12-16 08:49:59
你的配置发一下吧。你可以测试一下是不是开始和停止的时候都会进入中断?楼主描述的现象和手册说的差不多。
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版