这是一个pwm的原理图,对于pwm其实就是一个定时器自我计数,并与我们自己设定的值比较,最终得出高低电平,从而产生有规律的波形
其中ARR是计数的最大值,CCRX是我们自己设定的比较值
定时器pwm有向上,向下计数,有pwm1,pwm2模式,有输出极性高低的选择
1.配置rcc
2.配置gpio复用为定时器
3.设置定时器pwm的模式并使能
(1)PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;
在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平,否则为有效电平。
PWM模式2- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平;
在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。
(2)有效电平是通过TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_x来设置的,x可以为high,也可以为low
我自己的疑惑是,我设定的TIM_SetCompare1(TIM14,3000); 很高,但是电机却转的很慢,当我尝试把TIM_SetCompare1(TIM14,200); 时
我电机就变快了,这就是因为pwm模式的设定出了问题
void T

本文探讨了使用STM32F4通过PWM控制电机时遇到的问题。作者解释了PWM的工作原理,包括定时器的计数模式、PWM模式1和2的差异,以及输出极性的影响。在实践中,作者发现设置较高的比较值(CCRX)导致电机转速变慢,这与PWM1模式和低电平有效输出的组合有关,因为低电平无法有效驱动电机。
7968

被折叠的 条评论
为什么被折叠?



