几种STM32测量频率和占空比方式的利与弊
51
拍明
原标题:几种STM32测量频率和占空比方式的利与弊
在STM32中测量频率和占空比时,不同方法的核心特性对比(避开公式和代码,聚焦实际利弊):
一、输入捕获(Input Capture)
优点
精度极高
依赖硬件定时器,误差仅由时钟源决定(如72MHz定时器误差<0.001%)。
实时性强
硬件自动捕获边沿时间,CPU仅需在中断中处理数据,适合高频信号(如MHz级)。
抗干扰能力强
可配置输入滤波器(如抑制100ns以下的毛刺),适合工业环境。
缺点
占空比测量需额外操作
默认仅捕获上升沿,需手动切换极性或使用双通道捕获下降沿。
中断负载风险
高频信号(如1MHz)可能每微秒触发一次中断,需优化中断处理逻辑。
资源占用固定
必须占用一个定时器通道,且配置较复杂。
典型场景
电机PWM控制、超声波测距、高频信号分析。
二、外部中断(EXTI) + 定时器
优点
实现简单
仅需配置GPIO中断和基础定时器,适合快速原型开发。
资源占用极低
不依赖高级定时器功能,可用任意GPIO引脚。
缺点
精度受限
依赖
HAL_GetTick()(ms级)或通用定时器(通常1μs分辨率),无法测量高频信号。占空比测量困难
需手动管理上升沿/下降沿状态机,容易因抖动出错。
抗干扰差
无硬件滤波,噪声可能导致误触发。
典型场景
低频按钮检测、简单心跳信号监测。

三、PWM输入模式(TIM PWM Input)
优点
一键测量频率和占空比
硬件自动捕获周期和高电平时间,单次中断即可获取完整数据。
精度与输入捕获相当
同样依赖硬件定时器,误差极小。
缺点
资源占用高
需同时占用两个定时器通道(IC1和IC2),且配置复杂。
灵活性低
仅适用于标准PWM信号(固定占空比和周期)。
典型场景
伺服电机控制、舵机信号解析。
四、软件轮询(Polling)
优点
无需中断
适合超低频信号(如每秒几次变化),避免中断开销。
实现最简单
直接读取GPIO状态,无需配置定时器或中断。
缺点
精度极差
依赖CPU循环延迟,误差可能达毫秒级。
CPU占用率高
需持续轮询,无法同时处理其他任务。
无法测量占空比
仅能检测电平变化,无法计算高电平时间。
典型场景
调试阶段简单信号监测、极低频状态指示。
五、比较总结表
| 方法 | 精度 | 实时性 | 资源占用 | 抗干扰 | 占空比测量 |
|---|---|---|---|---|---|
| 输入捕获 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 中(1通道) | ⭐⭐⭐⭐ | 需额外操作 |
| 外部中断+定时器 | ⭐⭐ | ⭐⭐ | 低 | ⭐⭐ | 困难 |
| PWM输入模式 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 高(2通道) | ⭐⭐⭐⭐ | 自动 |
| 软件轮询 | ⭐ | ⭐ | 极低 | ⭐ | 不可行 |
六、选型建议
高频信号(>10kHz):优先选输入捕获或PWM输入模式。
低频信号(<1kHz):若精度要求不高,可用外部中断;若需极简实现,用轮询。
同时测频率和占空比:直接选PWM输入模式,避免复杂状态机。
资源紧张场景:尝试复用定时器通道(如用同一定时器测多路信号)。
关键原则:根据信号频率、精度需求和资源限制,选择能满足需求的最简单方案。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。

产品分类

2012- 2022 拍明芯城ICZOOM.com 版权所有 客服热线:400-693-8369 (9:00-18:00)