一、问题
将TIM16 TIM17 配置成pwm 输出,使能pwm 输出时,有时有pwm输出,有时没有。
二、分析
检查分析了脚位、端口时钟、定时器时钟、引脚重定义、定时器工作模式、定时器使能输出等等,都没错。有时候有信号输出,有时候没有,说明周期和占空比都没错。
三、结论
在初始化定时器时,TIM_TimeBaseInitTypeDef
和 TIM_OCInitTypeDef
这个两个类型的变量有一些成员没用到,就没进行初始化,由于是内部变量,未初始化的成员值是随机的,导致有时有pwm 输出,有时没有。
四、解决办法
调用TIM_TimeBaseStructInit
和TIM_OCStructInit
将初始化结构体所有成员设置为默认值。