高级定时器 ITM1/8
1.输出PWM需要添加 TIM_CtrlPWMOutputs(TIM1, ENABLE );
所有定时器
1. 需要添加重载 TIM_ARRPreloadConfig(TIMX, ENABLE); 曾经用定时器里翻转IO发送PWM控制电机,由于没有加这句导致中间有超过1ms以上的PWM中断,实际是由于APER=1,ARR修改需要在下一周期才生效。
2. 需要添加 TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; 不然计时会不准,可能是没有每次定时到都进入中断。
3.定时器中断开关一定要正确,曾复制一个定时器开启了捕获中断与更新中断,在配置时与中断函数里将捕获相关代码去掉了只保留了更新中断,但是开启了捕获中断结果导致usb不正常。
TIM_ITConfig( TIM2, TIM_IT_Update | TIM_IT_CC1 | TIM_IT_CC2, ENABLE );把捕获中断去掉
TIM_ITConfig( TIM2, TIM_IT_Update/* | TIM_IT_CC1 | TIM_IT_CC2*/, ENABLE );结果运行正常