新手入门
- 积分
- 12
- 金钱
- 12
- 注册时间
- 2021-4-23
- 在线时间
- 2 小时
|
我在用寄存器配置STM32F405RGT6的定时器TIM7时,发现了这个问题,于是上网搜索了各种解决办法,首先是官方的办法:先“TIM->EGR触发更新+TIM->SR清零”,再使能中断。还有一种同样较为普遍的做法是用ST库函数初始化完后,再TIM->SR清零。但深究其实两种做法差不多,因为ST定时器初始化函数最后一句好像就是TIM->EGR触发更新。
但问题是用官方办法确实能解决问题,但是前提是中断例程里必须先判断TIM->SR不为零,如果为真则执行用户代码,否则以上方法也不能解决问题,还是会一上电就进入中断,难道是不管怎么折腾,定时器总是会一上电就进入中断,只不过“TIM->EGR触发更新+TIM->SR清零”语句使得其上电进入中断时,TIM->SR=0(很奇怪,但这也是我能想到的唯一原因了)。
所以在这里想问一下大家有什么看法。
|
|