脉冲宽度调制PWM,实现对电机速度的控制。
1、PWM输出原理
假定定时器工作在向上计数 PWM模式,CNT为当前计数值,CCRx为捕获/比较寄存器CCRx的值(预装载值)。当 CNT<CCRx 时,GPIO口 输出低电平0,当 CNT>=CCRx 时,GPIO口 输出低电平0。当CNT达到 ARR (自动重装载值)的时候,重新归零,然后重新向上计数,依次循环。改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的频率。
2、PWM定时器
STM32 的定时器除了 TIM6 和 TIM7,其他的定时器都可以用来产生 PWM 输出。高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出,通用定时器能同时产生4路的 PWM 输出。这里我们用TIM2定时器的CH1和CH2产生两路PWM输出。
要使通用定时器 TIM2 产生两路 PWM 输出,需要配置的寄存器