STM32 PWM驱动电机

  1. PWM 基本原理

PWM 是一种周期性的数字信号,频率固定,但高电平(ON)和低电平(OFF)的时间比例(占空比)可调。

占空比 = 高电平时间 ÷ 周期

占空比越高 → 平均输出电压越高 → 电机转速越快

占空比越低 → 平均输出电压越低 → 电机转速越慢

  1. 在电机驱动中的作用

  2. 控制速度

直流电机(DC Motor)两端的平均电压决定转速。

STM32 定时器产生 PWM → 经过电机驱动芯片(如 L298N、TB6612)→ 调节电机电压。

占空比 0% → 电机停转;100% → 全速运转。

  1. 控制方向

PWM 信号只控制"速度",方向由 GPIO 电平组合决定(正转/反转)。

驱动芯片根据两个逻辑输入决定 H-bridge 桥臂导通方向。

  1. 实现软启动/制动

缓慢增加占空比 → 电机平稳启动,避免电流冲击。

占空比突然降到 0 → 电机会因惯性继续转,但此时可利用驱动芯片进行电制动。

  1. 伺服电机/步进电机控制

舵机(Servo)用固定周期(通常 20ms)的 PWM,脉宽 0.5ms~2.5ms 对应不同角度。

步进电机可结合 PWM 控制细分驱动,实现更平滑、高精度的转动。

  1. STM32 实现 PWM 的方法

硬件 PWM:用定时器(TIM)的 PWM 模式,设置 ARR (周期)和 CCR (占空比),输出到特定引脚。

软件 PWM:用定时器中断在 GPIO 上翻转电平,适合简单场景,但精度和频率受限。

示例代码:

相关推荐
Wallystech-Linda6 分钟前
Exploring WiFi 7 Module Designs for Next-Generation Wireless Applications
嵌入式硬件
不上岸的旱鸭子2 小时前
PCB设计
单片机·pcb工艺
吠品2 小时前
多语言支持,从后台到前端我都趟过哪些坑
stm32·单片机·嵌入式硬件
炸膛坦客2 小时前
单片机/C/C++八股:(二十三)#define 和 typedef 的区别
c语言·c++·单片机
zlinear数据采集卡3 小时前
硅片里的“自动纠错“:硬核拆解LHAMP188自动归零技术原理与三种封装的PCB布局实战
arm开发·单片机·嵌入式硬件·fpga开发·开源
2401_888859713 小时前
STM32H7外部flash(W25Q128)+SPI+DMA读写
stm32·单片机·嵌入式硬件
Industio_触觉智能3 小时前
开源鸿蒙OpenHarmony再进阶,OneConnect规范即将升级为国家级行业标准
嵌入式硬件·物联网·硬件架构·智能硬件·openharmony·开源鸿蒙
一个嵌入式学徒5 小时前
STM32F4 HAL库常用API手册(非CubeMX生成,需手动调用)
stm32·单片机·嵌入式硬件
m0_377108145 小时前
小智ai,esp32
单片机
是摆烂第一名呀6 小时前
RK3576+GMSL摄像头底层适配与调试
linux·arm开发·驱动开发·嵌入式硬件·数码相机