STM32——输入捕获、编码器接口(十一)

一、简介

输入捕获

• 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 输入,到最终得到计数值,分输入捕获单元时基 + 从模式单元两大路径,两者联动完成自动计数。

  1. 输入捕获单元(绿色 + 粉色左半部分):处理被测信号
  • GPIO:被测频率信号(比如传感器输出的方波)的输入引脚。

  • 滤波器:硬件滤除信号上的高频噪声,避免误触发捕获。

  • 边沿检测 / 极性选择:设置捕获的触发边沿,决定什么时候触发 捕获 和 复位(CNT清零)。

  • 分频器:可选 1/2/4/8 分频,比如设为 2,就会每 2 个上升沿触发一次捕获,用于测量周期更长的信号,避免计数器溢出。

  • CCR1 捕获 / 比较器 :核心寄存器,当触发捕获时,硬件自动把当前 CNT 的值复制到 CCR1,之后 CNT 被复位为 0,准备下一次计数。

  1. 时基 + 从模式单元(粉色右半部分 + 橙色模块):提供标准时钟并自动复位
  • 时基单元(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反向

相关推荐
余生皆假期-13 小时前
永磁同步电机二次起步处理
单片机·嵌入式硬件
DLGXY15 小时前
STM32——TIM定时器、定时中断、RCC时序(八)
stm32·单片机·嵌入式硬件
CQ_YM15 小时前
ARM之I2C
arm开发·单片机·嵌入式硬件·嵌入式
让世界再也没有bug15 小时前
测试工具之一 ------示波器
单片机·嵌入式硬件·硬件测试·嵌入式软件测试
CircuitWizard15 小时前
STM32 + 淘晶驰T1串口屏波形显示
stm32·单片机·嵌入式硬件
A9better16 小时前
嵌入式开发学习日志53——互斥量
stm32·嵌入式硬件·学习
Q_219327645517 小时前
基于单片机的个性化服装尺寸红外 测量仪的设计
单片机·嵌入式硬件
Polanda。18 小时前
定时器-PWM参数测量实验
stm32·单片机·嵌入式硬件
恶魔泡泡糖19 小时前
51单片机串口通信
c语言·单片机·嵌入式硬件·51单片机