在使用高级定时器的时候遇到几个坑,在这里记录一下。
主要是有些设置和普通定时器不太一样,如果照搬普通定时器的设置就会出错。
1.初始化设置里多了一项
TIM_TimeBaseInitStrue.TIM_RepetitionCounter = 0;//重复计数设置
是高级定时器独有的,具体作用可以查阅参考手册
2.高级定时器如果要用来输出PWM波则必须进行PWM输出使能
TIM_CtrlPWMOutputs(TIM1, ENABLE);//TIM1 PWM输出使能
3.定时器1的更新中断服务函数是
void TIM1_UP_IRQHandler(void){ }
并不是void TIM1_IRQHandler(void){ },如果错误会导致中断发生错误。
以上是我的一些经验,欢迎互相交流学习。