STM32定时器PWM怎么配置?频率和占空比怎么算?高级定时器互补输出怎么用?嵌入式面试

浏览量:222
时间: 2026-09-23 16:22:34
一句话答案

PWM 频率 = TimerClock / ((PSC+1)×(ARR+1)),占空比 = CCR/(ARR+1);普通定时器 TIM2~5 做 PWM,高级定时器 TIM1/TIM8 有互补输出和死区,用于电机驱动;配置步骤:时基→输出比较→GPIO 复用。

本文概述

PWM 是单片机最常用功能,面试常考:频率占空比计算、高级定时器互补输出、死区。回答要现场算频率。

核心要点

  • PWM 频率 = TimerClock / ((PSC+1)×(ARR+1))

  • 占空比 = CCR / (ARR+1) × 100%

  • 普通定时器 TIM2~5 支持 PWM 输出

  • 高级定时器 TIM1/TIM8 有互补输出 CHx/CHxN 和死区,用于 H 桥电机

  • 配置:时基(PSC/ARR)→输出比较模式(PWM1/PWM2)→CCR→GPIO 复用

STM32 开发板和示波器显示 PWM 波形,LED 调光

面试官:STM32 系统时钟 72MHz,要输出 1kHz PWM,PSC 和 ARR 怎么设?

面试官考察点

PWM 基础题。面试官看你是否会算。重点听:公式、PSC 和 ARR 选择。

回答思路

用公式算,给一组合理值。

参考回答

公式。

PWM频率 = TimerClock / ((PSC+1) × (ARR+1))

72MHz 要 1kHz:

(PSC+1) × (ARR+1) = 72MHz / 1kHz = 72000

选 PSC=71(分频 72),则 TimerClock=1MHz:

ARR+1 = 1MHz / 1kHz = 1000
ARR = 999

占空比 50% 时 CCR = 500。

参数值说明
TimerClock72MHzAPB1 定时器时钟(倍频后)
PSC71分频 72,计数频率 1MHz
ARR999周期 1000 计数 = 1ms
CCR0~999占空比 = CCR/1000
频率1kHz周期 1ms

配置步骤(HAL 库)。

  1. 使能定时器时钟和 GPIO 时钟;

  2. GPIO 配置为复用推挽输出(AF);

  3. 配置时基:PSC、ARR、计数模式(向上/向下);

  4. 配置输出比较:模式 PWM1(CNT

  5. 启动 PWM:HAL_TIM_PWM_Start(&htim, TIM_CHANNEL_1);

  6. 改占空比:__HAL_TIM_SET_COMPARE(&htim, TIM_CHANNEL_1, ccr)。

高级定时器互补输出。

  • TIM1/TIM8 有 CH1 和 CH1N(互补),同时输出反相 PWM;

  • 死区时间 DeadTime:防止上下管同时导通,一般几百 ns~1μs;

  • 用于 H 桥、三相逆变器、BLDC 电机驱动;

  • 配置:TIM_BDTR 寄存器设死区,MOE 位使能输出。

注意。

  • ARR 越大占空比分辨率越高,但频率越低;

  • 电机驱动 PWM 频率一般 10~20kHz(超音频);

  • LED 调光 1kHz 够了,太高效率低;

  • 高级定时器刹车功能(BKIN)用于过流保护。

面试官可能追问

追问 1:PWM1 和 PWM2 区别?
PWM1:CNT
追问 2:占空比分辨率怎么算?
分辨率 = 1/(ARR+1)。ARR=999 时 0.1%。
追问 3:为什么电机用 20kHz PWM?
高于人耳听觉范围(20kHz),避免电流纹波产生噪声。
追问 4:死区时间怎么设?
看 MOS 管开关时间,一般 500ns~1μs。太短上下管穿通,太长效率低。
追问 5:定时器时钟为什么是 72MHz 不是 36MHz?
APB1 预分频 2 时,定时器时钟倍频 2,所以 36×2=72MHz。看 RCC 配置。

常见失分表达

✗ PSC 和 ARR 不算直接写 — 频率不对。
✗ 电机 PWM 用 1kHz — 音频噪声大。
✗ 互补输出不设死区 — 上下管同时导通烧管子。

准备动作

1
算一次 PWM 频率和占空比
2
用 TIM1 输出互补 PWM 驱动电机
3
准备一个 PWM 频率不对最终定位是 PSC 配错的案例

核心关键词

STM32PWM定时器占空比ARR高级定时器互补输出


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
35岁+电子工程师面试:怎么证明自己不是“贵而不好用”?技术深度与岗位价值怎么讲

35岁以上电子工程师面试不需要回避年龄。关键是把多年经验翻译成能降低研发风险、缩短交付周期、解决复杂问题和带动团队的可验证价值。面试先答结论:35岁+面试最忌讳... 详情>>

2026-10-14 23:34:41
信号完整性抖动怎么分析与测量?PCB仿真面试RJ/DJ/TJ分类与眼图预算

PCB仿真 · 中高级 · 场景排查适合岗位:PCB仿真工程师、硬件工程师 | 经验:1-5年 | 难度:中高级本文概述信号完整性抖动面试题考察RJ/DJ/TJ... 详情>>

2026-08-29 12:20:40
一套比较经典的PCB设计工程面试题

一套比较经典的PCB设计工程面试题一、填空1.PCB上的互连线按类型可分为 _微带线_和带状线2引起串扰的两个因素是_容性耦合和_感性耦合3.EMI的三要素:发... 详情>>

2023-11-27 10:21:08
ESD防护电路怎么设计?接触放电与空气放电怎么做?EMC工程师面试

一句话答案ESD 防护核心是「泄放 + 钳位 + 隔离」:对外接口就近放 TVS/ESD 阵列把静电泄到地、串电阻限流、必要时用光耦/隔离器件隔断;接触放电要靠... 详情>>

2026-09-14 19:49:23
混频器怎么用?上下变频和镜像频率是什么?接收机为什么要镜像抑制?射频面试

一句话答案混频器把 RF 和 LO 相乘,输出和频(RF+LO)和差频(|RF-LO|);上变频用和频,下变频用差频(中频 IF);镜像频率 = 2LO - R... 详情>>

2026-09-23 16:22:58
开班信息