当前位置: 首页 > news >正文

TIM 编码器接口

目录

编码器接口

正交编码器

编码器接口基本结构

编码器接口三种工作模式

实例(均不反相)

实例(TI1反相)


本篇文章内容的前置知识为 TIM输入捕获,如果不了解,可点击链接学习

TIM 输入捕获-CSDN博客

编码器接口

        编码器接口(Encoder Interface)是 STM32 定时器的一种特殊工作模式,专门用于接收增量型(正交)编码器的信号。通过分析编码器发出的两路相位相差90度的脉冲信号,定时器可以自动判断旋转方向,并据此控制计数器(CNT)自增或自减,从而实时反映编码器的位置变化。
        使用编码器接口时,定时器能够同时测量旋转方向、位置以及通过计算脉冲频率间接获得旋转速度。每个高级定时器和通用定时器都集成了一个编码器接口,所需的两路输入信号分别通过输入捕获通道1(CH1)和通道2(CH2)引入,完成正交信号的接收与解码。

正交编码器

编码器输出两路相位差90°的脉冲:A相 和 B相
旋转方向由边沿触发时另一相的电平判断


正转判断规则(CNT递增):

边沿判断依据
A相 ↑B相为低电平
B相 ↑A相为高电平

反转判断规则(CNT递减):

边沿判断依据
A相 ↑B相为高电平
B相 ↑A相为低电平

表格都是基于上升沿进行判断,在上面的图片中还有下降沿的判断依据

编码器接口基本结构

信号流动流程:
1. 两路 GPIO 输入(接编码器 A相 和 B相)
2. 滤波器:去抖动,防止误触发
3. 边沿/极性检测:识别上升沿或下降沿
4. 形成 TI1FP1 / TI2FP2 信号
5. 编码器接口模块:分析 A/B 相位差,判断方向
6. 控制计数器 CNT 自增或自减,记录位置
7. 可配合 PSC 预分频 与 ARR 自动重装载实现平滑计数

编码器接口三种工作模式

正转的状态都向上计数,反转的状态都向下计数

实例(均不反相)

对于每个边沿,通过另一相的电平高低判断是向上计数还是向下计数。
TI1FP1 对应 TI2,TI2FP2 对应 TI1

TI1、TI2 正常输入
正转:TI1 先变,TI2滞后 → CNT 递增(向上计数)
反转:TI2先变,TI1滞后 → CNT 递减(向下计数)
整体计数方向与编码器真实方向一致

实例(TI1反相)

由于T1反相,所以上面的表格这时候是错误的,需要先把图片中TI1高低电平取反再查表
和均不反相的实例对比,实际旋转方向不变,计数器方向反了

TIM_EncoderInterfaceConfig() 函数

函数名功能主要作用
TIM_EncoderInterfaceConfig()启用定时器的编码器接口模式,将两个通道的输入脉冲用于测量编码器位移和方向自动配置输入捕获 + 从模式,定时器 CNT 会根据编码器 A/B 相位自动计数(增或减)

函数参数

参数含义
TIM3目标定时器,一般使用通用定时器(如 TIM2、TIM3、TIM4)。
TIM_EncoderMode_TI12编码器模式选择:
TI1:只用 TI1 通道
TI2:只用 TI2 通道
TI12:使用 TI1 + TI2(典型增量编码器模式)
TIM_ICPolarity_Rising设置 TI1 输入极性:
Rising 实际表示 不反相
Falling 实际表示 反相
TIM_ICPolarity_Rising设置 TI2 输入极性,同上。

在编码器模式下,Rising/Falling 表示是否反相,而不是捕获上升沿/下降沿


尚未完结

http://www.dtcms.com/a/301616.html

相关文章:

  • listen() 函数详解
  • 表单重复提交、以及重复消费的幂等性问题解决方案
  • 企业如何便捷地使用宝塔面板管理系统服务和网站:一键全能部署与高效运维
  • 062_Arrays类与数组操作
  • 在飞牛OS上部署MoonTV:一站式影视聚合播放器安装教程
  • [spring6: @EnableWebMvc]-源码分析
  • MySQL 事务和锁
  • Webpack 和 Vite 的关键区别
  • 在Luckfox Lyra(Zero W)上将TF卡格式化为ext4文件系统
  • 人工智能——图像梯度处理、边缘检测、绘制图像轮廓、凸包特征检测
  • 递归查询美国加速-技术演进与行业应用深度解析
  • 2025 环法对决,VELO Angel Glide 坐垫轻装上阵
  • 【AI论文】GR-3技术报告
  • 《频率之光:危机降临》
  • 详细解释一个ros的CMakeLists.txt文件
  • tpms传感器的设计---硬件电路
  • python中的容器和对象
  • 深入理解SmolVLA中的Flow Matching Action Expert:从理论到实现
  • 从0到1学Pandas(九):Pandas 高级数据结构与操作
  • Adobe Animate中文版 v2024.24.0.10.14
  • 洛谷 装箱问题 动态规划-变形背包问题
  • OpenCL study - code03 rgb2gray
  • 进度条制作--Linux知识的小应用
  • 电商平台中,订单未支付过期,如何实现自动关单?
  • 字节前端面试知识点总结
  • 使用GIS中基于森林的分类与回归模型来估算房屋价值
  • c++17--std::variant
  • 决策树算法小结(上)
  • cmake入门学习
  • HCIE学习之路:路由引入