先确定有效定时器时钟
定时器输入来自芯片时钟树。在一些 STM32 系列中,APB 分频不为 1 时定时器可能得到倍频时钟,请以具体芯片文档为准。
计数器时钟 = 定时器时钟 ÷ (PSC + 1)
PWM 频率 = 定时器时钟 ÷ ((PSC + 1) × (ARR + 1))
PWM 频率 = 定时器时钟 ÷ ((PSC + 1) × (ARR + 1))
Worked Example:1 kHz、25% 边沿对齐 PWM
输入为 72 MHz 定时器时钟,PSC=71、ARR=999、CCR=250;假设向上计数、边沿对齐、PWM 模式 1、有效高极性。这是理论计算,不是硬件实测;72 MHz 不能直接当作 CPU 或 APB 时钟。
- 计数器时钟 = 72,000,000 ÷ (71+1) = 1 MHz。
- 周期计数 = 999+1 = 1000。
- PWM 频率 = 1,000,000 ÷ 1000 = 1 kHz,周期 1 ms。
- 占空比 = 250 ÷ 1000 × 100 = 25%。
PWM 模式 1 向上计数时,CNT 小于 CCR 期间输出参考信号为高。中心对齐、向下计数、重复计数器、极性反相、死区和更新时序可能不适用同一公式。参考 STMicroelectronics RM0008 参考手册。
请核对设备文档。这些公式是通用模型,具体硬件模式和协议条件可能带来额外约束。