ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

博客一:STM32 PWM 从零彻底搞懂(CNT/ARR/CCR/分辨率/占空比)

博客一:STM32 PWM 从零彻底搞懂(CNT/ARR/CCR/分辨率/占空比) 前言绝大多数初学者学PWM混乱的根源分不清「谁决定速度、谁决定精度、谁决定占空比」。本篇把所有参数、公式、底层对比逻辑一次性串死完全基于 STM32F1 定时器向上计数、PWM模式1工程最常用。1. PWM 最核心的三个角色1CNT计数器—— 硬件自动跑的秒表完全硬件自动递增不需要CPU干预从 0 开始一直 1跑到 ARR 值立刻清零重新循环只读我们不手动写它CNT增速快慢由PSC预分频决定。2ARR自动重装载值—— 秒表的上限由用户代码自己设置0~65535决定CNT数到多少归零ARR1 一个PWM周期的总步数ARR1 PWM总档位 分辨率3CCR比较值—— 电平翻转门槛由用户代码随时修改0~ARR硬件每时每刻对比CNT vs CCRPWM模式1向上计数规则CNT CCR → 高电平CNT ≥ CCR → 低电平CCR只改占空比不改频率、不改分辨率。2. 分辨率、档位、最小变化幅度最容易混淆核心结论背下来档位 ARR 1一共多少种亮度/速度最小变化幅度 1 / (ARR1)CCR加1占空比变动多少分辨率越高 ⇋ 档位越多 ⇋ 最小变化幅度越小 ⇋ 调节越顺滑举例对比ARR99100档最小跳变1%调光明显阶梯感ARR9991000档最小跳变0.1%调光非常顺滑3. 全套核心公式工程直接用$$f_{CNT} \frac{f_{TIM}}{PSC1}$$$$f_{PWM} \frac{f_{TIM}}{(PSC1)(ARR1)}$$$$Duty \frac{CCR}{ARR1} \times 100\%$$$$最小步进 \frac{1}{ARR1}$$4. 三大参数最终职责总结终极记忆PSC控制CNT跑多快 → 只改PWM频率不影响分辨率ARR控制周期步数 →同时决定频率 分辨率CCR控制高低电平分界 →只改占空比5. 边界情况汇总CCR 0 → 全程低电平0%CCR ARR → 全程高电平100%CCR ARR → 永远高电平PWM失效ARR最大6553516位定时器上限
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进