STM32 HAL库实现编码器测速
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库实现编码器测速相关推荐
- 【STM32】使用HAL库进行电机测速,原理、代码、滤波
参考资料: https://blog.csdn.net/lzzzzzzm/article/details/119416134 野火STM32电机开发教程 1. 编码器种类及原理 常见的编码器有两种,分 ...
- STM32 HAL库 驱动 MT6701 磁编码器
写在前面: MT6701 是 MagnTek 推出的新一代基于差分霍尔感应原理的磁性角度编码器芯片.值得一提的是 MT6701不仅提供 0~360° 的角度信号,而且还提供了一个"按压&qu ...
- stm32 hal库 AS5600磁编码器IIC通信读取角度
stm32 hal库 AS5600磁编码器IIC通信读取角度 下载
- stm32霍尔编码器测速(标准库函数版)
基本原理:霍尔编码器是有霍尔马盘和霍尔元件组成.霍尔马盘是在一定直径的圆板上等分的布置有不同的磁极.霍尔马盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相 ...
- STM32 HAL库PID控制电机 第三章 PID控制双电机
STM32 HAL库PID控制电机 第三章 PID控制双电机 注:本文含全部PID控制代码,保证可以运行,如不能运行可以留言回复 1 基础配置 1.1 编码器电路图及配置 引脚 定时器通道 PA0 T ...
- 基于STM32 HAL库的遥控小车
目录 前言 一.材料清单 二.系统概述 三.硬件设计 1.HC-SR04超声波模块 2.HC-05/06蓝牙模块 3.L298n电机驱动模块 四.代码 1.引脚设置 2.遥控部分 3.超声波报警部分 ...
- stm32+HAL库制作转速仪
stm32+HAL库制作转速仪 前言 电机在运行过程中,需要实时检测其转速的稳定性,有效反映电机的运行情况. 本文介绍了基于stm32的转速仪的设计,可以用光电门传感器和红外对管传感器测量,可以设置选 ...
- 传统型编码器测速方案
传统型编码器测速方案 编码器,经常被用来测量速度或者显示电机位置,大致分为绝对值式编码器和增量式编码器,顾名思义,相对应的是产生增量或者绝对信号.增量信号不表示特定位置,只表示位置已经更改:绝对信号是 ...
- 如何快速使用STM32 HAL库和涂鸦Wi-Fi模组进行通信
简介:本文将教大家如何使用STM32HAL库快速开发和涂鸦WIFI模组通信,接入涂鸦云. 实现功能:通过APP实时监测温湿度数据 程序下载路径:demo程序. demo(定时采集数据)程序. 一.使 ...
最新文章
- 曾因「抢车位」出圈儿,神奇的Mask R-CNN了解一下?
- H264分辨率解码概述
- Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)
- 高一数学集合知识点整理_高一数学知识点总结
- 三种Cache写入方式原理简介
- Doracle.jdbc.J2EE13Compliant=true
- 站酷用HTML5播放视频,站酷:动效展示实践的问题及解决
- stm32 输入捕获 测量脉宽
- linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解?
- 炒股要学会向动物学习
- 转:性能测试常见术语
- php数据保存txt文件怎么打开方式_php - 利用保存在TXT文件(PHP)中的数组数据 - SO中文参考 - www.soinside.com...
- 游戏筑基开发之结构体(数组、指针)、枚举、共用体、typdef(C语言)
- c++ vector排序_C++ vector动态数组的常见操作
- c语言中专业术语及其定义,c语言中常用专业英语词汇
- 大数据之路之交通大数据应用总体架构设计
- 027_《Delphi Direct X 图形与游戏程序设计》
- 最全iOS开发之第三方库
- 有一个人愿意参加第一届校园活力健美操这
- 微服务RPC原理【深度好文】
热门文章
- javaWeb 实现上传+下载 文件
- BIEE Demo(RPD创建 + 分析 +仪表盘 )
- Udacity数据分析(进阶)——清洗与分析数据(Twitter数据集)
- 有限责任公司董事会可不可以修改章程
- sci-hub常用地址
- LoadRunner录制图片验证码
- 扫描型PDF转成可搜索可复制的文字型PDF,使用PDF24 OCR 程序报“下载需要的文件时出现一个错误”
- MySQL中的MRR优化分析
- Zabbix-agent 增加自定义监控项-- Ping 到目的地 IP 链路监控
- [GRE] Quant模考错题