1. 高级定时器输入捕获机制深度解析
输入捕获是STM32高级定时器(如TIM1、TIM8)最核心的外设功能之一,其本质并非简单的电平检测,而是一套精密的时序测量系统。在工业控制、电机驱动、超声波测距、脉冲宽度调制分析等场景中,它承担着将物理世界的时序信号精确数字化的关键任务。理解其工作原理,必须跳出“边沿触发即捕获”的表层认知,深入到寄存器映射、信号路径、时钟同步与中断处理的底层逻辑。
1.1 输入捕获的核心目标与工程意义
输入捕获的根本目的,是精确测量外部事件相对于定时器计数器(CNT)的时刻。这个“时刻”并非绝对时间,而是以定时器内部时钟为基准的计数值。例如,在测量方波信号的周期时,第一次上升沿被捕获时CNT值为N1,第二次上升沿被捕获时CNT值为N2,则周期T = (N2 - N1) × T_clk,其中T_clk为定时器时钟周期。这一简单公式背后,是硬件自动完成的高精度时间戳记录,其精度远超软件轮询或延时函数所能达到的水平。
该功能的价值在于其确定性与时序保证。在实时系统中,任何由CPU执行的软件延时都受中断、任务调度等因素影响,存在不可预测的抖动。而输入捕获由硬件在检测到有效边沿的下一个时钟周期内,立即将当前CNT值锁存至捕获/比较寄存器(CCR),整个过程完全独立于CPU,抖动仅为一个系统时钟周期,通常在纳秒量级。这使得它成为构建高可靠性、低延迟反馈控制环路的基石。
1.2 硬件信号路径:从引脚到寄存器的完整链路
理解输入捕获,首要任务是厘清信号在芯片内部的完整传输路径。以TIM1的通道1(CH1)为例,其信号流并非一条直线,而是一个经过多