1. 输入捕获技术的本质与工程定位
在嵌入式系统开发中,定时器从来不只是一个简单的计数装置。当它被配置为输入捕获模式时,其角色发生根本性转变:从时间的被动记录者,跃升为外部信号时间特性的精密解析器。这种能力不是附加功能,而是嵌入式系统感知物理世界的关键接口——电机转速、超声波测距、红外遥控解码、编码器位置反馈、PWM信号参数识别等大量工业与消费类应用,都依赖于这一底层机制的可靠实现。
STM32的通用定时器(如TIM2、TIM3、TIM4)和高级控制定时器(如TIM1、TIM8)均支持输入捕获,但其核心逻辑高度统一。理解这一机制,必须首先摒弃“定时器=计数器”的朴素认知,建立“定时器=事件-时间映射引擎”的工程模型。该模型的核心在于:将离散的、不可预测的外部电平跳变事件,精确地锚定到一个连续、高精度、受控的内部时间轴上。这个时间轴由定时器的计数器(CNT)构成,而锚定动作即为“捕获”。
捕获的本质是一次原子性的硬件操作:当预设的边沿(上升沿、下降沿或双边沿)在指定通道上被检测到时,硬件自动将当前CNT寄存器的瞬时值,无延迟、无软件干预地复制到对应的捕获/比较寄存器(CCR)中。这一过程不消耗CPU周期,不受中断响应延迟影响,是实现微秒级甚至纳秒级时间测量精度的物理基础。因此,输入捕获的可靠性与精度,直接取决于对定时器时钟源、预分频器(PSC)、计数器(CNT)以及捕获通道内部信号流的系统性理解。
2. 定时器通道架构与信号流全景图
STM32的通用定时器(以TIM3为例)拥有四个完全独立的捕获/比较通道(CH1–CH4),每个通道均可单独配置为输入捕获或输出比较模式。这种设计并非简单的功能堆砌,而是源于对复杂信号分析需