单片机 PWM 频率与占空比计算器

输入单片机系统主频 fCLK、定时器预分频系数 PSC (Prescaler)、自动重装载寄存器 ARR (Period) 与比较值 CCR (Compare),在线计算出产生的 PWM 频率 fPWM、周期时间 T、占空比百分比以及 PWM 分辨率位数。适用于 STM32、ESP32、Arduino 及 51 单片机外设配置。

注意:部分单片机 APB 预分频不为 1 时,定时器时钟倍频 2 倍
STM32 HAL 库中填真实写入寄存器的值 (分频系数为 PSC + 1)
STM32 中实际周期计数为 (ARR + 1)
决定高电平持续时间

计算结果

PWM 产生频率 fPWM
PWM 信号周期 T
高电平占空比 Duty %
高电平脉宽时间 Thigh
占空比分辨率 (调光/调速级数) 级 ( Bits)

STM32 标准公式 (边沿对齐)

fPWM = fCLK / [ (PSC + 1) × (ARR + 1) ]

Duty (%) = [ (CCR) / (ARR + 1) ] × 100%

分辨率级数 = ARR + 1,位数 Bits = log₂(ARR + 1)

典型嵌入式应用场景 PWM 参数配置推荐表 (以 72MHz STM32F1 为例)

应用场景目标 PWM 频率推荐 PSC 值推荐 ARR 值说明
舵机控制 (SG90 / MG996R)50 Hz (周期 20ms)PSC = 71 (1MHz计数)ARR = 19999CCR 在 500~2500 之间控制 0°~180° 角度
直流电机 PWM 调速10 kHz ~ 20 kHzPSC = 0 或 3ARR = 3599 (20kHz)高于 16kHz 可消除电机人耳听觉噪音啸叫
蜂鸣器无源鸣叫2.7 kHz (响度最高)PSC = 71ARR = 36950% 占空比声音最响亮
LED 呼吸灯 / 蜂窝调光1 kHz ~ 5 kHzPSC = 71ARR = 999 (1kHz)ARR=999 时占空比精度直接对应 0.1% / 1000级
  • 频率与分辨率的权衡: PWM 频率越高(ARR 值越小),占空比可调节的细致程度(分辨率级数)就越低;提高分辨率需增加 ARR,但这会降低 PWM 频率。
  • 死区时间 (Dead-time):在 H 桥或半桥驱动电路中,上管与下管开关 PWM 必须配置死区时间,防止上下管直通短路炸管。
博众新材产品
dgbzxny | 博众新材

免费获取样品与设计选型支持

提供贴片铜条、贴片螺母、焊接端子、PCB插片等多样化样品,支持定制开发与技术方案匹配。

微信二维码
微信扫码·直接沟通