首页/外设速查/PWM
🔄

PWM 脉宽调制

基础外设
通过调节高电平占比(占空比)控制平均输出,电机调速、调光、舵机控制的核心手段。
🧩 核心原理
📈 时序 / 工作过程图
PWM 波形与占空比频率决定周期,占空比决定平均电压/有效输出PWM高电平时间 T_on周期 T = 1/频率占空比 = T_on / T × 100% · 例:50Hz 周期20ms,占空比5% = 高电平1ms(舵机中位)
⚙️ 配置 / 使用要点
  1. 配置定时器 ARR/PSC 得目标频率
  2. 配置 OC 通道为 PWM 模式 + CCR 初值
  3. HAL_TIM_PWM_Start 启动
  4. 运行中 __HAL_TIM_SET_COMPARE 调占空比
🛠️ 项目示例
PWM 呼吸灯(周期渐变占空比)
// TIM2 CH1 输出,1kHz,占空比 0→100 渐变
htim2.Init.Prescaler = 71;      // 72MHz/72 = 1MHz
htim2.Init.Period = 999;        // 1kHz
HAL_TIM_PWM_Init(&htim2);
// ... 配置 OC1 为 PWM1,Pulse=0 ...
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);

uint16_t duty = 0, dir = 1;
while(1){
  __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, duty);
  HAL_Delay(5);
  if(dir) { if(++duty >= 999) dir = 0; }
  else    { if(--duty == 0)   dir = 1; }
}
❓ 面试高频
PWM调速为什么用10-20kHz?
高于人耳可闻范围(避免电机啸叫),又足够高让电机电流平滑(电感滤波)
占空比和电压关系?
平均电压 = 占空比 × 电源电压。PWM等效为可变电压源
怎么用PWM控制舵机角度?
50Hz周期,1ms脉宽≈0°,1.5ms≈90°,2ms≈180°,占空比5%-10%
死区是什么?用在哪儿?
互补PWM输出时两管切换的插入间隔,防止直通短路,用于电机驱动/H桥
✅ 自查清单 (点击勾选,本地保存)
0/0
知道频率与占空比分别决定什么
会算占空比公式
懂PWM调速与舵机原理
知道死区概念
能调呼吸灯/电机