## PWM ## 判别规则(核心,唯一要记的) 1. **频率看 ARR、占空比看 CCR**:`频率 = CK_PSC / (PSC+1) / (ARR+1)`,`占空比 = CCR / (ARR+1) × 100%` 2. **调亮度/转速/舵机角度 = 改 CCR(占空比);改频率 = 改 ARR 或 PSC** 3. **场景判别**:要"平滑控制平均输出"(灯亮暗、电机快慢、舵机角度)→ 就是 PWM 一句话:**"ARR 定周期、CCR 定高电平比例;要变亮度改 CCR,要变频率改 ARR。"** ## 抽象描述(一句话本质) PWM = 快速开关信号(每秒几千上万次),靠"高电平占整个周期的比例"(占空比)控制平均电压 → 灯变暗、电机变慢、舵机转角度。频率决定快不快,占空比决定平均多高。 ## 核心概念(先分清三样东西) | 概念 | 是什么 | 谁决定 | | ---------- | ------------------------ | ---------------- | | **频率** | 每秒波形循环多少次 | **ARR**(+PSC) | | **占空比** | 高电平占一个周期的百分比 | **CCR** | | **分辨率** | 占空比能调多细 | ARR 越大分得越细 | ## 两条公式(背下来) ``` 频率 Freq = CK_PSC / (PSC + 1) / (ARR + 1) 占空比 Duty = CCR / (ARR + 1) × 100% ``` - **PSC 预分频**:把 TIM 时钟降下来(CK_PSC 通常是 72MHz 或 APB1×2) - **ARR**:计数到顶的值 → 定**周期/频率** - **CCR**:比较值 → 定**高电平占多少**(占空比) **算例(注意两步除法)**: - 72MHz,PSC=7199(7200 分频 → 10KHz 计数时钟),ARR=99 → 频率 = 10K/100 = **100Hz**;CCR=50 → 占空比 = **50%** - 72MHz,PSC=71(72 分频 → 1MHz 计数时钟),ARR=999 → 频率 = 1M/1000 = **1KHz** > 坑:别把"计数时钟"当成"PWM 频率",还差最后一步 ÷(ARR+1)。 ## 波形怎么出来(PWM 模式 1) ``` CNT 从 0 往上数到 ARR: CNT < CCR → 输出高 CNT ≥ CCR → 输出低 周期 = (ARR+1) 个计数;高电平时间 = CCR 个计数 ``` - **PWM 模式 1**:前半段(CNT