一、简介
输入捕获
• IC ( Input Capture )输入捕获
• 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前 CNT 的值将被锁存到 CCR 中,可用于测量 PWM 波形的频率、占空比、脉冲间隔、电平持续时间等参数
• 每个高级定时器和通用定时器都拥有 4 个输入捕获通道
• 可配置为 PWMI 模式,同时测量频率和占空比
可配合主从触发模式,实现硬件全自动测量
编码器接口
• Encoder Interface 编码器接口
• 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制 CNT 自增或自减,从而指示编码器的位置、旋转方向和旋转速度
• 每个高级定时器和通用定时器都拥有 1 个编码器接口
两个输入引脚借用了输入捕获的通道1和通道2
二、输入捕获
频率测量

测频法:第一个上升沿到下一个上升沿为一个周期,在一个固定时间内被测信号经过N个周期,所以T测 = T标 / N。
测周法:在被测信号的一个周期内,标准频率驱动计数器计数,N就是CNT的计数值,也就是在时间T测内,标准信号经过N个周期,T测 = N * T标。
中界频率:
当 fx>fm 时,用测频法精度更高
当 fx<fm 时,用测周法精度更高
基本结构

信号从 GPIO 输入,到最终得到计数值,分输入捕获单元 和时基 + 从模式单元两大路径,两者联动完成自动计数。
- 输入捕获单元(绿色 + 粉色左半部分):处理被测信号
-
GPIO:被测频率信号(比如传感器输出的方波)的输入引脚。
-
滤波器:硬件滤除信号上的高频噪声,避免误触发捕获。
-
边沿检测 / 极性选择:设置捕获的触发边沿,决定什么时候触发 捕获 和 复位(CNT清零)。
-
分频器:可选 1/2/4/8 分频,比如设为 2,就会每 2 个上升沿触发一次捕获,用于测量周期更长的信号,避免计数器溢出。
-
CCR1 捕获 / 比较器 :核心寄存器,当触发捕获时,硬件自动把当前 CNT 的值复制到 CCR1,之后 CNT 被复位为 0,准备下一次计数。
- 时基 + 从模式单元(粉色右半部分 + 橙色模块):提供标准时钟并自动复位
-
时基单元(PSC+CNT+ARR):
用一个时钟源驱动它,经过PSC 预分频器变成我们需要的标准频率,ARR 自动重装载器,这里几乎用不到(因为 CNT 会被被测信号的上升沿提前复位),只需设为最大值(如 65535)防止溢出即可。

-
触发源选择:把 "输入捕获处理后的信号(TI1FP1)" 选为从模式的触发源。
-
从模式 Reset :从模式的一种工作模式,当检测到触发源(TI1FP1)的上升沿时,硬件自动把 CNT 复位为 0,实现 "一个被测周期,CNT 从 0 数到 N" 的自动循环。
PWMI


-
边沿检测 / 极性选择现在输出两路滤波后的信号:
TI1FP1:对应上升沿,触发 CCR1 捕获和从模式复位TI1FP2:对应下降沿,触发 CCR2 捕获
-
双捕获通道(CCR1+CCR2)
- CCR1:在上升沿触发时,锁存 CNT 值并复位计数器,记录完整周期
- CCR2:在下降沿触发时,锁存 CNT 值,记录高电平持续时间
- PWM占空比 = CNT2/CNT1
-
从模式 Reset 触发源仍为
TI1FP1(上升沿),确保每个周期开始时 CNT 都被复位为 0,保证计数的连续性和准确性。
三、编码器接口
基本结构

增量式编码器输出 A、B 两路正交脉冲,编码器接口通过检测两路信号的边沿顺序,自动控制(无需软件配置) CNT 的增减:
- 当 A 相脉冲先于 B 相出现 → 判定为顺时针旋转 → CNT 自增
- 当 B 相脉冲先于 A 相出现 → 判定为逆时针旋转 → CNT 自减
- 若开启双边沿检测,每个 A/B 相的上升沿和下降沿都会触发一次计数,分辨率提升至 4 倍。

工作模式

实例
不反向

1. "向前(正转)"阶段
- 当 TI1(A 相)的上升沿到来时,TI2(B 相)为低电平 → 匹配表格「低」行「TI1FP1 上升」列 → 判定为向上计数(CNT++)。
- 当 TI2(B 相)的上升沿到来时,TI1(A 相)为高电平 → 匹配表格「高」行「TI2FP2 上升」列 → 判定为向上计数(CNT++)。
- 结果:计数器持续上升,对应编码器正转。
2. "向后(反转)"阶段
- 当 TI1(A 相)的上升沿到来时,TI2(B 相)为高电平 → 匹配表格「高」行「TI1FP1 上升」列 → 判定为向下计数(CNT--)。
- 当 TI2(B 相)的上升沿到来时,TI1(A 相)为低电平 → 匹配表格「低」行「TI2FP2 上升」列 → 判定为向下计数(CNT--)。
- 结果:计数器持续下降,对应编码器反转。
3. "毛刺"阶段
- 图中短暂的脉冲毛刺,因为不符合正交脉冲的相位关系(TI1/TI2 的电平不匹配判定规则),所以不会触发计数器变化。
注
当TI1(A 相)变化后的电平和 TI2(B 相)电平 相反:向上计数 相同:向下计数
当TI2(B 相)变化后的电平和 TI1(A 相)电平 相同:向上计数 相反:向下计数
TI1反向
