PWM 与执行器
本页覆盖三个 PWM 输出:舵机控制、蜂鸣器发声和 BMI270 加热。三者都使用定时器比较输出,但频率、负载特性和安全边界完全不同,不能复用同一组参数。
PWM 参数关系
PWM frequency = timer_clock / ((PSC + 1) × (ARR + 1))
duty_cycle ≈ CCR / (ARR + 1)先确定定时器实际输入时钟,再选择便于计算的计数频率,最后配置 ARR 和 CCR。APB 预分频不为 1 时,注意定时器时钟可能为 APB 时钟的 2 倍。
舵机接口
舵机信号由 PB8 / TIM4_CH3 输出。3Pin 接口从原理图针脚 1 到 3 分别为 GND、5 V、Signal。

PB8 舵机接口在板卡上的位置与方向

H5:Pin 1 GND、Pin 2 +5V、Pin 3 PB8
| H5 针脚 | 信号 | 说明 |
|---|---|---|
| 1 | GND | 舵机地,与控制信号共地 |
| 2 | +5V | 板上 5 V 电源 |
| 3 | Signal | PB8 / TIM4_CH3 |
常见位置舵机使用 50 Hz(20 ms 周期),脉宽约 0.5~2.5 ms 对应角度范围;实际中心点、端点和允许电压必须查舵机规格书。
大电流舵机不要直接拖垮整板电源
反接 5 V/GND 会损坏舵机。堵转电流较大的舵机应使用独立稳压电源,并将电源地与开发板 GND 可靠共地;首次调试先限制角度范围,避免机械卡死。
无源蜂鸣器
蜂鸣器由 PB9 / TIM4_CH4 控制。原理图包含三极管驱动和保护器件,MCU 不直接承担蜂鸣器电流。

板载无源蜂鸣器位置

PB9 经耦合与三极管驱动蜂鸣器
频率决定音调,占空比影响驱动强度。原理图标注器件基准约为 2.7 kHz,说明书建议先使用约 20% 占空比;播放旋律时应非阻塞地更新频率和时长,避免长时间 HAL_Delay 阻塞控制任务。
BMI270 加热输出
PA1 / TIM2_CH2 经过 MOSFET 控制 BMI270 附近的并联加热电阻。加热的目的不是“越热越好”,而是让 IMU 温度稳定在高于环境温度的固定工作点,降低零偏随环境变化。

左侧为 PA1 加热驱动,右侧为 BMI270 SPI 电路
禁止开环满功率加热
必须读取温度、限制最大占空比并处理传感器失效。禁止让 PA1 持续 100% 占空比输出;调试闭环时从较低功率上限开始,并设置过温立即关断。
推荐验证顺序
- 不接负载,用示波器确认 PWM 频率和占空比。
- 蜂鸣器先用低占空比短时发声。
- 舵机先独立供电、共地,并从中心脉宽开始。
- IMU 加热先验证温度采样,再启用带限幅的闭环控制。
继续学习:L2 定时器与 PWM、PWM LED和PWM 蜂鸣器。