[STM32F1] STM32定时器初始化后马上进入中断

[复制链接]
646|7
 楼主| jiahy 发表于 2022-1-1 19:46 | 显示全部楼层 |阅读模式
STM32定时器初始化后马上立即就会进入中断,按网上的方法如果加一句TIM_ClearITPendingBit(TIM3, TIM_IT_Update); 其实还是进入了中断函数内部,只是不执行用户的有效语句.  应该在TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);这句前加TIM3->CR1=TIM_CR1_URS; 这样中断的条件就不满足了,程序就不会进入定时器的中断函数内部了.
renyaq 发表于 2022-1-1 19:48 | 显示全部楼层
嗯, 支持一下,  把遇到的问题的解决办法分享给大家,  是个好做法
chenjunt 发表于 2022-1-1 19:51 | 显示全部楼层
其实,那样清除也够了,在使能定时器更新中断前 执行这句TIM_ClearITPendingBit(TIM3, TIM_IT_Update);  是不会发生一使能定时器中断就进中断服务程序的。
hanwe 发表于 2022-1-1 19:56 | 显示全部楼层
如果按你那样操作,那就意味着只有定时器的溢出事件【上溢或下溢】才能触发更新中断。
renyaq 发表于 2022-1-1 20:00 | 显示全部楼层
但有些场合,比如希望软件方式触发 或从模式复位事件触发更新中断,如果此时将URS位清零就没法
renyaq 发表于 2022-1-1 20:02 | 显示全部楼层
产生相应中断了。
liliang9554 发表于 2022-1-1 20:06 | 显示全部楼层
应该是只需要清除标志位就可以了的
 楼主| jiahy 发表于 2022-1-1 20:09 | 显示全部楼层

唉,还是没有什么结果,算了,多谢大家啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

862

主题

9861

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部