STM32 HAL库实现编码器测速

(还开了串口1用来调试,下文没写;然后那个short的用法就是看平衡小车之家(就是喵呜实验室的文档里头的,用法确实惊艳),文末贴了工程)
编码器接口模式
TI1和TI2连接编码器,开启定时器编码器模式后,根据TI1和TI2的信号转换序列,产生对应的计数脉冲和方向信号(此时是硬件控制CR寄存器的DIR位,软件不能再进行编程控制) 编码器接口只能是TI1和TI2,TI3和TI4是不具备编码器接口功能的。

对于计数器的计数和方向判断,如下:

cubeMx配置:直接选择一个通用定时器或者高级定时器,点开编码器模式即可

之后直接生成代码即可

Keil:
编码器数据读取函数:

强制转换short的作用:实现正转读数为正,反转读数为负。
实现原理:寄存器所读出来的值是0-65535,而short是2字节,技术范围是-32768-32767,当寄存器读到32767的时候经过short强制转换就会溢出,使得寄存器的读数32768经过强制转换编程-32768,再下一个32769转换成-32767。所以,电机反转的时候读出的数就是反方向的速度值,不需要用 65535 去减去读出的值再加上负号才可以得到方便观察的值

Main.c需要添加的:

实现效果:

当电机不转的时候,编码器读数为0,当反转的时候读数为负数,正转时候为正数;由于我前面设置的是Encoder TI1&TI2,所以他是四倍频。如果要计算圈数(四倍频为例),则需要知道该电机的单相单圈脉冲,计算公式:圈数=所读的脉冲数/单相单圈脉冲/4

注意:要接编码器正负极,不然读到的数据无效且保持在一个数上下浮动。

完整工程:(指南者F103的,其实可以移植encoder的.c和.h)
链接:https://pan.baidu.com/s/1xmDYSHZCCOrg66TMNV7uSg
提取码:ld9i

STM32 HAL库实现编码器测速相关推荐

  1. 【STM32】使用HAL库进行电机测速,原理、代码、滤波

    参考资料: https://blog.csdn.net/lzzzzzzm/article/details/119416134 野火STM32电机开发教程 1. 编码器种类及原理 常见的编码器有两种,分 ...

  2. STM32 HAL库 驱动 MT6701 磁编码器

    写在前面: MT6701 是 MagnTek 推出的新一代基于差分霍尔感应原理的磁性角度编码器芯片.值得一提的是 MT6701不仅提供 0~360° 的角度信号,而且还提供了一个"按压&qu ...

  3. stm32 hal库 AS5600磁编码器IIC通信读取角度

    stm32 hal库 AS5600磁编码器IIC通信读取角度 下载

  4. stm32霍尔编码器测速(标准库函数版)

    基本原理:霍尔编码器是有霍尔马盘和霍尔元件组成.霍尔马盘是在一定直径的圆板上等分的布置有不同的磁极.霍尔马盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相 ...

  5. STM32 HAL库PID控制电机 第三章 PID控制双电机

    STM32 HAL库PID控制电机 第三章 PID控制双电机 注:本文含全部PID控制代码,保证可以运行,如不能运行可以留言回复 1 基础配置 1.1 编码器电路图及配置 引脚 定时器通道 PA0 T ...

  6. 基于STM32 HAL库的遥控小车

    目录 前言 一.材料清单 二.系统概述 三.硬件设计 1.HC-SR04超声波模块 2.HC-05/06蓝牙模块 3.L298n电机驱动模块 四.代码 1.引脚设置 2.遥控部分 3.超声波报警部分 ...

  7. stm32+HAL库制作转速仪

    stm32+HAL库制作转速仪 前言 电机在运行过程中,需要实时检测其转速的稳定性,有效反映电机的运行情况. 本文介绍了基于stm32的转速仪的设计,可以用光电门传感器和红外对管传感器测量,可以设置选 ...

  8. 传统型编码器测速方案

    传统型编码器测速方案 编码器,经常被用来测量速度或者显示电机位置,大致分为绝对值式编码器和增量式编码器,顾名思义,相对应的是产生增量或者绝对信号.增量信号不表示特定位置,只表示位置已经更改:绝对信号是 ...

  9. 如何快速使用STM32 HAL库和涂鸦Wi-Fi模组进行通信

     简介:本文将教大家如何使用STM32HAL库快速开发和涂鸦WIFI模组通信,接入涂鸦云. 实现功能:通过APP实时监测温湿度数据 程序下载路径:demo程序. demo(定时采集数据)程序. 一.使 ...

最新文章

  1. 曾因「抢车位」出圈儿,神奇的Mask R-CNN了解一下?
  2. H264分辨率解码概述
  3. Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)
  4. 高一数学集合知识点整理_高一数学知识点总结
  5. 三种Cache写入方式原理简介
  6. Doracle.jdbc.J2EE13Compliant=true
  7. 站酷用HTML5播放视频,站酷:动效展示实践的问题及解决
  8. stm32 输入捕获 测量脉宽
  9. linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解?
  10. 炒股要学会向动物学习
  11. 转:性能测试常见术语
  12. php数据保存txt文件怎么打开方式_php - 利用保存在TXT文件(PHP)中的数组数据 - SO中文参考 - www.soinside.com...
  13. 游戏筑基开发之结构体(数组、指针)、枚举、共用体、typdef(C语言)
  14. c++ vector排序_C++ vector动态数组的常见操作
  15. c语言中专业术语及其定义,c语言中常用专业英语词汇
  16. 大数据之路之交通大数据应用总体架构设计
  17. 027_《Delphi Direct X 图形与游戏程序设计》
  18. 最全iOS开发之第三方库
  19. 有一个人愿意参加第一届校园活力健美操这
  20. 微服务RPC原理【深度好文】

热门文章

  1. javaWeb 实现上传+下载 文件
  2. BIEE Demo(RPD创建 + 分析 +仪表盘 )
  3. Udacity数据分析(进阶)——清洗与分析数据(Twitter数据集)
  4. 有限责任公司董事会可不可以修改章程
  5. sci-hub常用地址
  6. LoadRunner录制图片验证码
  7. 扫描型PDF转成可搜索可复制的文字型PDF,使用PDF24 OCR 程序报“下载需要的文件时出现一个错误”
  8. MySQL中的MRR优化分析
  9. Zabbix-agent 增加自定义监控项-- Ping 到目的地 IP 链路监控
  10. [GRE] Quant模考错题