定时器输入捕获如何测量频率和脉宽?计数器溢出怎么处理?-STM32面试

浏览量:1
时间: 2026-11-15 22:26:23


面试官提问

STM32面试:定时器输入捕获如何测量频率和脉宽?计数器溢出怎么处理?

STM32定时器PWM输入捕获时序图,展示计数器、捕获寄存器和输入边沿关系

一、参考回答

定时器输入捕获的基本思路,是让硬件在检测到指定边沿时,把当前计数器CNT的值锁存到捕获比较寄存器CCR,而不是依靠软件进入中断后再读取时间。测频率时,连续捕获两个同类型边沿,得到计数差ΔN,再用定时器计数频率除以ΔN;测脉宽时,分别捕获上升沿和下降沿,计算两次捕获值之差。若计数器计数频率为fCNT,则周期T=ΔN/fCNT,输入频率fIN=fCNT/ΔN。这里的fCNT要根据实际定时器时钟和预分频器计算,不能直接把APB总线时钟当成计数频率。低频信号还要考虑计数器在两个边沿之间溢出;高频信号则要考虑输入滤波、数字滤波延迟和捕获寄存器被覆盖的风险。

二、回答时要讲清楚的关键点

  1. 确认定时器内核时钟、APB分频和PSC。部分STM32系列在APB预分频不为1时,定时器时钟可能与PCLK不同;具体倍频关系要查对应芯片参考手册和时钟树。

  2. 测周期时捕获连续两个上升沿或连续两个下降沿,使用无符号差值并正确处理ARR回卷;若使用16位计数器,不能忽略计数器溢出。

  3. 测PWM高电平脉宽时,要分别锁存上升沿和下降沿,或者使用芯片支持的PWM Input模式、从模式复位和双通道捕获组合。

  4. 根据输入频率范围配置PSC和ARR,让计数分辨率、最大测量周期和中断负载达到平衡。频率跨度很大时,可考虑溢出扩展计数、DMA或周期性更新计数。

三、工程判断对照

表格内容(3倍高清图片)
面试容易失分的地方

面试中不要把“捕获中断里读取CNT”说成输入捕获。真正的输入捕获是硬件在边沿到来时锁存CCR,软件只负责读取和计算;另外,fCNT必须使用定时器实际计数时钟,而不是想当然使用CPU主频。

技术资料:ST:How to use the input capture feature;STMicroelectronics:STM32Cube输入捕获示例与溢出说明

相关培训方向

根据岗位方向继续了解对应的课程与实战训练


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
锂电池充电电路怎么设计?CC/CV充电与保护怎么做?电源工程师面试

电源设计中级技术基础题本文概述锂电池充电是消费电子和便携设备电源设计的常考题。面试官想听的不是“用充电芯片就行”,而是你懂不懂锂电池充电的基本流程(预充、恒流、... 详情>>

2026-09-05 09:51:45
自动布线全部显示完成,为什么还不能直接投板?关键网络复核清单

审板记录 / Layout软件状态栏显示100% Routed,只能说明当前连接关系按规则完成,不能证明板子好生产、信号能工作。面试官如果给你一张自动布线完成的... 详情>>

2026-10-25 11:04:21
什么是交叉编译?

在⼀种计算机环境中运⾏的编译程序,能编译出在另外⼀种环境下运⾏的代码,我们就称这种编译器⽀持交叉 编译。这个编译过程就叫交叉编译。简单地说,就是在⼀个平台上⽣成... 详情>>

2023-10-25 10:00:34
PCB叠层怎么设计?4层/6层叠层怎么排?阻抗控制和参考平面怎么选?PCB面试

一句话答案叠层设计原则:信号层紧邻参考平面、电源和地相邻、关键信号走内层、对称叠层防翘曲;4层典型 信号-地-电源-信号,6层典型 信号-地-信号-信号-电源-... 详情>>

2026-09-24 09:22:29
跨时钟域CDC如何处理?两级同步器、握手和异步FIFO怎么选?-FPGA面试

面试官提问FPGA面试:跨时钟域CDC如何处理?两级同步器、握手和异步FIFO怎么选?一、参考回答CDC(Clock Domain Crossing)关注的是信... 详情>>

2026-11-15 22:28:02
开班信息