单片机定时器怎么产生PWM?频率和占空比到底由谁决定?

浏览量:1
时间: 2026-10-31 15:40:44

很多嵌入式岗位都会问定时器、计数比较和硬件PWM,这里重点是把计算关系讲对,并指出不同计数模式的差异。

面试官这样问

不用delay软件翻转GPIO,而用MCU硬件定时器产生20kHz PWM并调节占空比。你会改哪个寄存器?占空比从30%改到70%会影响频率吗?

参考回答|先讲结论

在常见的边沿对齐、向上计数PWM模式中,计数时钟经过预分频器PSC,再由自动重装寄存器ARR确定周期;比较寄存器CCR决定高低电平翻转位置。只修改CCR通常改变占空比而不改变周期;修改PSC或ARR则会改变频率,特殊模式还要看PWM极性与对齐方式。

核心原理,面试官真正要听的

以常见通用定时器的向上计数为例:PWM频率约为 fTIM / [(PSC+1)×(ARR+1)],占空比可按CCR与周期计数之比理解。中心对齐模式的计数路径包含上下双向过程,不能直接照搬同一频率公式。还应检查实际定时器输入时钟,它可能受到总线预分频和芯片时钟树规则影响。

PWM开关周期与脉宽波形

工程现场怎样检查与回答

STEP 01

从芯片时钟树确认定时器实际输入频率,再根据目标频率选择PSC与ARR,让ARR保留足够分辨率。

STEP 02

配置GPIO复用功能、通道PWM模式、极性和输出使能;必要时开启ARR/CCR预装载,避免更新瞬间出现毛刺。

STEP 03

通过CCR改变占空比,边界值0%和100%时要检查硬件的输出比较行为与计数边界。

STEP 04

用示波器测实际频率、占空比和抖动;如果控制电机,还要考虑驱动器的死区、开关损耗和可闻噪声。

容易踩的坑

不能把“CCR决定频率”或“PSC决定占空比”说反。也不能无条件把一个厂商的寄存器命名和公式套用到所有MCU定时器。

追问练习

同样20kHz PWM,为什么ARR越大通常占空比分辨率越高?因为一个周期内可用的比较计数级数增加,但前提是时钟频率与预分频配置允许。


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
单片机为什么要用中断?中断服务函数里能不能直接延时?

FIRMWARE · 中断机制这是嵌入式岗位非常典型的开场题,考的是实时性意识,而不是会不会写一个中断函数。先给结论轮询是CPU主动检查事件;中断是事件触发CP... 详情>>

2026-10-30 11:53:05
PCB信号回流路径怎么分析?

PCB信号回流路径怎么分析?PCB仿真面试深度题:信号回流原理、参考平面完整性与跨分割影响分类:PCB仿真经验级别:2-5年难度:中等偏难题型:原理分析题本文概... 详情>>

2026-08-25 10:16:03
PCB仿真结果可信度高吗?PCB仿真面试模型精度与实测对比详解

分类:PCB仿真经验级别:1-3年难度:中高级题型:深度理解+工程方法本文概述:PCB仿真结果的可信度不是一个固定值,而是取决于模型精度、边界条件设置和仿真方法... 详情>>

2026-08-14 11:28:32
删掉文件名后进程还在写:Linux的目录项、inode和打开文件句柄怎么关联?

日志文件已被rm删除,磁盘空间却没有立刻释放,服务还在持续写入。Linux面试经常用这个故障区分“知道命令”和“理解文件系统对象”的候选人。从文件系统结构图理解... 详情>>

2026-10-25 11:06:37
TDR怎样定位PCB阻抗不连续?面试不能只会看“高了还是低了”

题库分类:PCB设计适合经验:1—5年难度:中高级题型:测试分析题 + 信号完整性题面试题高速通道实测回波异常,TDR曲线上出现多个阻抗台阶,你会怎样判断异常位... 详情>>

2026-07-31 14:57:26
开班信息