问题描述:先初始化串口,后初始化PWM,会导致PWM无法正常运行
usart_init(115200); /*串口初始化*/
TIM3_CH2_PWM_Init(500-1,72-1); //频率是2Kh
反之先初初始化PWM,后始化串口,则没有问题。
TIM3_CH2_PWM_Init(500-1,72-1); //频率是2Kh
usart_init(115200); /*串口初始化*/
可能原因:TIM_OCInitTypeDef TIM_OCInitStructure;这个结构体变量,所以我猜想可能的原因是因为结构体变量是局部变量,没有指定初始化值,使结构体成员TIM_Pulse是个随机值,最终导致CCR1的值错误。所以没输出了。所以在申请变量的地方给这个结构体的局部变量赋初值为0就好了。
解决方案:给 TIM_OCInitTypeDef 的结构体赋初值为0
TIM_OC_InitTypeDef TIM3_CH2Handler={0}; //定时器3通道2句柄