关于STM32F407 TIM2定时器的 诡异问题
本帖最后由 james-351009 于 2014-12-13 16:33 编辑最近在使用STM32F407的定时器,遇到一个诡异的问题。
我用TIM2做PWM波形输出,用了一个OC脚。中断的配置是只有更新事件产生中断。
在每个更新事件产生时,UIF位由硬件置位,系统进入中断例程。那么问题来了,在UIF没有置位的时候
也能进中断例程吗?这个现象是偶尔产生,而且这个中断是紧跟在正常更新中断例程之后产生的!
在中断使能寄存器里,我只使能了UIE位!而这个莫名其秒的中断,是怎么回事呢?!
下面是在进入那个中断时的寄存器截图:
只使能了 UIE
注意进入中断后,UIF没有置位!!!!诡异!!!
这是我加的监测程序,在中断例程的最前面,也没有检测UIF置位!
上面是中断时的寄存器截图
请各位大神以及STM32官方能给个说法!谢谢了!
诡异,帮顶 本帖最后由 james-351009 于 2014-12-15 09:08 编辑
希望有更多大神关注啊!能提供线索者有奖:lol
补充一下,这个中断的优先级是最高的,另外我也使用TIM3,TIM4无此现象,而TIM2唯一特殊的是32BIT的.
路过了30几个大神,帮顶下哦!或许以后你们也以遇到这样的问题 楼主发生的问题是,TIM没有关闭,直接通过使能中断来实现关闭中断的功能。那么我建议开启使能之前先关闭TIM功能,再使能,再开启TIM功能。这样测试一下是否还会发生这个问题。 本帖最后由 james-351009 于 2014-12-15 13:18 编辑
安 发表于 2014-12-15 11:28
楼主发生的问题是,TIM没有关闭,直接通过使能中断来实现关闭中断的功能。那么我建议开启使能之前先关闭TIM ...
感谢大神显身。
TIM2中断例程相当于一个计数功能,在使用前配置好,开启中断,再使能TIM2。在计数没有达到预期之前,是不会使能和关闭中断的。上述现象是发生在这个过程中的,并未操作任何TIM2的寄存器。不知道我说明白没有 能不能发一下你的TIM配置。我看截图中TIF中断产生过。 手册中写到It is set when the counter starts or stops when gated mode is selected.你是否设置了GATED模式? 安 发表于 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中可以看到。 你的配置发一下吧。你可以测试一下是不是开始和停止的时候都会进入中断?楼主描述的现象和手册说的差不多。