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

关于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-16 11:03:59
Note: External clock, gated mode and encoder mode can work only if the CEN bit has been
previously set by software. However trigger mode can set the CEN bit automatically by
hardware.
SMS:External Clock Mode 1 - Rising edges of the selected trigger (TRGI) clock the counter.
注意SMS设置为External Clock Mode 1以后,在开始的时候会产生一个触发事件,就是TRGI。
在注意TIF产生的来源:This flag is set by hardware on trigger event (active edge detected on TRGI input when the slave mode controller is enabled in all modes but gated mode. It is set when the counter starts or stops when gated mode is selected. It is cleared by software.
你把SMS的值修改以后,这个中断应该就不会产生了。楼主可以考虑修改为000,然后测试一下。
小贾-370388 回答时间:2014-12-16 23:04:48
SMS =111:外部时钟模式1 – 选中的触发输入(TRGI)的上升沿驱动计数器。
                                                                                               
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-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功能。这样测试一下是否还会发生这个问题。
废鱼 回答时间: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
你的配置发一下吧。你可以测试一下是不是开始和停止的时候都会进入中断?楼主描述的现象和手册说的差不多。
james-351009 回答时间:2014-12-16 10:18:34
安 发表于 2014-12-16 08:49
你的配置发一下吧。你可以测试一下是不是开始和停止的时候都会进入中断?楼主描述的现象和手册说的差不多 ...

谢谢你的回复 ,配置在上面的图中都能看到的,你所关心的SMCR的值也有。
james-351009 回答时间:2014-12-16 16:27:35
安 发表于 2014-12-16 11:03
Note: External clock, gated mode and encoder mode can work only if the CEN bit has been
previously s ...

回头试试,但可能性不大,谢谢你的回复
wamcncn 回答时间:2014-12-16 21:19:50
没有诡异一说,肯定是程序哪错了,先检查程序,一个小问题都够调试许久.从我学51单片机的经验来看呵呵
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版