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

STM32通用定时器-输入捕获-脉冲计数

一、知识点

  1. 编码器
      两相编码器(正交编码器):两相编码器由 A 相和 B 相组成,相位差为 90 度。当旋转方向为顺时针时,A 相先变化,然后 B 相变化;当旋转方向为逆时针时,B 相先变化,然后 A 相变化。通过检测相位差变化,可以确定旋转的方向。STM32 单片机可以使用定时器的正交编码器模式(Encoder Mode)来实现两相编码器的接口。
    在这里插入图片描述

  四相编码器:四相编码器由 A 相、B 相、C 相和 D 相组成,相位差为 90 度。通过检测相位差变化和不同相位的信号变化情况,可以确定旋转的方向。STM32 单片机可以使用定时器的四相编码器模式(X4 Encoder Mode)来实现四相编码器的接口。

  1. 编码器接口
      编码器的两个输入引脚,就是每个定时器的CH1和CH2引脚,CH3和CH4不能接编码器。
      最终的实验现象,编码器有两个输出,一个是A相,一个是B相,然后接入到STM32,定时器的编码器接口,编码器的接口自动控制定时器时基单元中的CNT计数器,进行自增或自减。比如初始化之后,CNT初始值为0,然后编码器右转,CNT就++,右转产生一个脉冲,CNT就加一次,比如右转产生10个脉冲后,停下来,那么这个过程CNT就由0自增到10,停下来,编码器左转,CNT就–,左转产生一个脉冲,CNT就自减一次, 比如编码器再左转产生5个脉冲,那CNT就在原来10的基础上自减5,停下来。
      编码器接口,其实就相当于是一个带有方向控制的外部时钟,同时控制着CNT的计数时钟和计数方向,这样CNT的值就表示了编码器的位置。如果我们每隔一段时间取一次编码器的值,再把CNT清零,那么每次取出来的值就表示了编码器的速度。
      编码器测速实际上就是测频法测正交脉冲的频率,CNT计次,然后每隔一段时间取一次计次,这就是测频法的思路。编码器计次能根据旋转方向,不仅能自增计次还能自减计次,是一个带方向的测速。
    每个高级定时器和通用定时器都拥有1个编码器接口。

二、框图

在这里插入图片描述
  
在这里插入图片描述
  

三、编码器计数操作

在这里插入图片描述
  解释:当Tl1先产生脉冲,Tl2后产生脉冲。(A相先变化,B相后变化)时电机正转,计数器开始计数CNT++。当产生毛刺时,CNT不计数。Tl2先产生脉冲,Tl1后产生脉冲。(B相先变化,A相后变化)时电机反转,计数器CNT–。当产生毛刺时不计数。

  
在这里插入图片描述

http://www.lryc.cn/news/274414.html

相关文章:

  • Flutter GetX 之 路由管理
  • 基于单片机的农田灌溉系统(论文+源码)
  • 分布式缓存 -- 基础
  • 云计算复习笔记--期末
  • 【WPF.NET开发】WPF中的焦点
  • 【计算机设计大赛作品】豆瓣电影数据挖掘可视化—信息可视化赛道获奖项目深入剖析【可视化项目案例-22】
  • VS2019启动编辑并继续不起作用(.NET)
  • FFmpeg处理音视频的常用API及一般流程
  • Kotlin协程学习之-01
  • 214.【2023年华为OD机试真题(C卷)】测试用例执行计划(排序题-JavaPythonC++JS实现)
  • 数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
  • 07. HTTP接口请求重试怎么处理?
  • 分割数组的最大差值 - 华为OD统一考试
  • 基于 Python+Django 技术栈,我开发了一款视频管理系统
  • Python从入门到网络爬虫(内置函数详解)
  • Python新年烟花代码
  • oracle语法学习
  • 网络安全常见漏洞类型总结
  • C++自制小游戏《屠夫躲猫猫》
  • LabVIEW在高级结构监测中的创新应用
  • 关于GitHub的git推送命令时报错密码授权失败问题
  • WPF Blend for visual studio使用
  • 云卷云舒:【实战篇】Redis迁移
  • [C#]yolov8-onnx在winform部署手势识别模型
  • 【uniapp】 uniapp 修改tabBar图标大小和navigationBar字体大小
  • Visual Studio 2017 + opencv4.6 + contribute + Cmake(Aruco配置版本)指南
  • 自定义事件总线
  • 212.【2023年华为OD机试真题(C卷)】堆内存申请(排序和贪心算法-JavaPythonC++JS实现)
  • Flink Watermark和时间语义
  • HarmonyOS UI框架简介