STM32F031 pwm调试踩坑
STM32F031 pwm调试踩坑PWM 一路正常输出,一路没有
客户做了块板子,2路pwm互补输出,采用TIM2的CH1,CH2通道,使用的是 HAL库做的驱动层
2路配置完全一样,只是一路输出是低电平,一路输出是高电平
结果测试的时候只有CH2有输出,CH1一直处于一个电平,没有反应
排查问题点
首先排查 TIM2初始化:
- 基本配置没问题;
- pwm基本配置没发现问题;
- OCC配置CH1 CH2完全一样,只是 输出电平不同,都采用pwm mode1模式;
使用普通GPIO调用的时候,CH1/PA15是可以正常输出反转电平的
所以问题还在软件上
发现问题点
既然配置没问题,那就看调用,发现疑似问题点
voidPwm_Start(void){Pwm_Set_Freq(mypwm.pwm_freq);HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1|TIM_CHANNEL_2);}voidPwm_Start(void){Pwm_Set_Freq(mypwm.pwm_freq);HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);}问题解决
结论不能偷懒,pwm使能只能每个通道单独调用
