凡亿助教-小云
凡事用心,一起进步
打开APP
公司名片
凡亿课堂 | 面试指南
当前位置: 首页 面试指南
单片机面试:定时器输入捕获怎么测PWM频率和占空比?计数溢出与滤波怎么处理
浏览量:65
2026-10-23 14:04:47

输入捕获的核心不是“中断来了就读一下计数器”,而是让硬件在指定边沿到来时锁存计数值,从而测量边沿之间的时间。面试官通常会继续追问:如何区分周期和高电平宽度、计数器溢出怎么办、输入滤波会不会影响测量精度。

三相PWM脉冲波形示例,展示不同相位下脉冲出现的位置与宽度变化

先把测量量定义清楚

定时器计数频率

fcnt = fTIM / (PSC + 1)

周期与占空比

T = Nperiod / fcnt;f = 1/T;D = Nhigh / Nperiod

公式中的计数差要考虑计数器回绕、捕获边沿配置和具体芯片的计数规则。

实战测量流程

  1. 将输入信号接到支持输入捕获的定时器通道,确认引脚复用、输入电压范围和边沿极性。

  2. 捕获相邻两个同类边沿的计数值,得到周期计数;再捕获上升沿到下降沿的计数差,得到高电平宽度。

  3. 根据定时器输入时钟和预分频计算计数频率,再换算输入频率与占空比。预分频越大,计数范围更长,但时间分辨率会降低。

  4. 若计数器可能在两次捕获间溢出,需要用溢出中断扩展计数,或使用正确的模运算处理回绕;不能直接对两个无符号数相减后就假设结果正确。

  5. 输入滤波可抑制毛刺,但滤波窗口太长可能漏掉窄脉冲或引入边沿延迟。要结合信号频率、最小脉宽和芯片定时器时钟选择。

工程上还要留意

中断服务函数应尽量短,保存捕获值后再在主循环或任务中计算;如果输入频率变化很快,需考虑捕获寄存器被新值覆盖、DMA缓冲深度和数据处理速度。

面试参考回答:

“我会用硬件输入捕获锁存边沿时刻。两个同向边沿的计数差用于算周期,上升沿到下降沿的计数差用于算高电平宽度,再结合定时器实际计数频率换算频率和占空比。若计数器可能溢出,要扩展计数或处理回绕;输入滤波则根据最小脉宽和抗毛刺要求设置,不能盲目开大。”

面试官可能继续问

  • 为什么输入捕获比软件轮询GPIO更适合测高频脉冲?

  • 预分频过大和过小分别会带来什么问题?

  • 如果占空比偶尔跳变,怎样区分输入毛刺、捕获覆盖和计算溢出?

本文用于电子工程师技术学习与面试准备,具体设计应结合器件数据手册、产品规范、仿真和实测结果确认。


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

相关文章

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

2026-10-31 15:40:44

0Ω电阻在PCB板中的5大常见作用

2024-03-29 09:38:12

STM32的I2C外设怎么配置?嵌入式面试I2C通信时序与常见问题排查

2026-08-24 10:02:14

硬件大厂最新硬件工程师面试题汇总(附参考答案)

2023-11-27 10:54:20

STM32 ADC多通道采样怎么配置与校准?规则组、扫描模式与DMA怎么做?嵌入式面试

2026-09-13 21:25:31