- PWM 基本原理
PWM 是一种周期性的数字信号,频率固定,但高电平(ON)和低电平(OFF)的时间比例(占空比)可调。
占空比 = 高电平时间 ÷ 周期
占空比越高 → 平均输出电压越高 → 电机转速越快
占空比越低 → 平均输出电压越低 → 电机转速越慢
-
在电机驱动中的作用
-
控制速度
直流电机(DC Motor)两端的平均电压决定转速。
STM32 定时器产生 PWM → 经过电机驱动芯片(如 L298N、TB6612)→ 调节电机电压。
占空比 0% → 电机停转;100% → 全速运转。
- 控制方向
PWM 信号只控制"速度",方向由 GPIO 电平组合决定(正转/反转)。
驱动芯片根据两个逻辑输入决定 H-bridge 桥臂导通方向。
- 实现软启动/制动
缓慢增加占空比 → 电机平稳启动,避免电流冲击。
占空比突然降到 0 → 电机会因惯性继续转,但此时可利用驱动芯片进行电制动。
- 伺服电机/步进电机控制
舵机(Servo)用固定周期(通常 20ms)的 PWM,脉宽 0.5ms~2.5ms 对应不同角度。
步进电机可结合 PWM 控制细分驱动,实现更平滑、高精度的转动。
- STM32 实现 PWM 的方法
硬件 PWM:用定时器(TIM)的 PWM 模式,设置 ARR (周期)和 CCR (占空比),输出到特定引脚。
软件 PWM:用定时器中断在 GPIO 上翻转电平,适合简单场景,但精度和频率受限。
示例代码:





