看来STM32的Timer真是灵活得很哪!
不过要把各个环节、细节都捋一遍,弄清楚,还真要费一番工夫。
经过这个帖子的学习,四点心得:
1)PSC的赋值是缓冲"buffered"的;必须有更新事件到来,才会真正赋上值;
2) ARR的赋值可以是直接见效的;也可以是缓冲的,取决于APRE
3) TIM_TimeBaseInit() 初始化事件基这个函数里面,通过设置UG,人为产生了一个更新事件,来确保PSC和ARR能够赋上值。
4)因此,为了后面不必要的中断,需要在3)时间基初始化后清除标志,TIM_ClearFlag(TIMx, TIM_FLAG_Update) 再打开相应中断TIM_ITConfig(TIMx, TIM_IT_Update , ENABLE)。否则即使没有开始运行timer,一样要进中断。
好贴!学习了,收藏了~~~ |