单片机面试:定时器输入捕获怎么测PWM频率和占空比?计数溢出与滤波怎么处理

浏览量:53
时间: 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更适合测高频脉冲?

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

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

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


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
差分信号的S参数怎么分析?SDD21与模式转换怎么理解?PCB仿真面试从差模讲到共模

PCB仿真中高级技术基础题本文概述差分信号是高速设计的主流,差分S参数分析是PCB仿真面试的进阶题。面试官想听的不是“看插损就行”,而是你懂不懂混合模式S参数(... 详情>>

2026-09-05 09:52:37
STM32 CAN怎么配置?波特率、位时序、过滤器、收发流程怎么处理?

一句话答案STM32 CAN配置分三步:GPIO复用为CAN_TX/RX、配置位时序(波特率=APB1时钟/(BS1+BS2+1)/预分频)、配置过滤器(掩码/... 详情>>

2026-10-11 15:24:43
FPGA异步FIFO设计的原理和注意事项

分类:FPGA设计经验级别:中级难度:★★★★☆异步FIFO是FPGA面试中几乎必问的题目。它的核心作用是在两个不同时钟域之间安全地传输数据,解决跨时钟域的数据... 详情>>

2026-08-12 10:02:35
FPGA面试:GTX/GTH高速收发器怎么讲?参考时钟、均衡、CDR和眼图是主线

高速收发器面试最忌讳把GTX/GTH说成“一个高速串口IP”。面试官真正想知道你是否理解串并转换、PLL/CDR、预加重、接收均衡、参考时钟以及板级链路之间的关... 详情>>

2026-10-16 20:18:32
射频收发机架构怎么理解?超外差与零中频接收机怎么选?射频工程师面试

射频电路中高级技术基础题本文概述射频收发机架构是射频面试的核心框架题。面试官想听的不是“超外差下变频”,而是你懂不懂收发机的作用(发射/接收链路)、超外差架构的... 详情>>

2026-09-10 21:40:58
开班信息