目录

概述

电气连接

波形分析

思路

HAL初始化

代码

成品


概述

EC11是一种增量型AB相旋转编码器

旋转编码器是一种可以无限旋转的旋钮,常被作为各种需要大量数据范围的情况(如收音机选台,音量选择等)

增量型是与绝对性做的区分,意味着输出的信号与当前的位置没有关系,与旋转的方向和角度有关

AB相指的是一种输出模式(也可以认为是一种协议)

有两个线输出根据相位判断方向,根据高低电平数量判断走过度数

电气连接

原理图

EC11常见额定电压是5V,实测3.3V也可以驱动,但不建议使用3.3V(会出现杂波)

阻容是为了进行上拉输出和硬件滤波

A,B为旋转信息的输出(两相)

C为接地

SW为内部的开关,可以当作轻触按键使用(注意加软件滤波)

波形分析

数据手册的截图

实测顺时针转动一格

实测逆时针转动一格

解释:

每转动一格(拿到实物自己实验下很容易理解什么叫一格),AB相会出现一个持续10-150ms的低电平,默认为高电平状态

顺时针转动时A相的低电平会比B相提前

逆时针转动时A相的低电平会比B相延后

思路

很明显可以看出,只需要在A(或B)相的一个边沿(上升下降均可),检测另一相的电平高低即可

因此需要的外设有:

  1. 外部中断
  2. 一个输入状态的GPIO

注意:

  1. 因为要直接接入5V的电压,因此需要GPIO耐压为5V(即为数据手册表FT的管脚)
  2. 未避免干扰,输入状态和外部中断的GPIO设置为上拉模式(不知道为啥浮空输入干扰贼大)
  3. 外部中断上升沿和下降沿均可(这里以下降沿为例)

HAL初始化

外部中断和NVIC

GPIO

代码

为了便于后期的调用,这边做了一个回调函数,可以在触发顺时针或者逆时针的旋转的时候自动调用这个函数

头文件

//外部中断
#define EC11_A_GPIO_Group GPIOA
#define EC11_A_GPIO_PIN GPIO_PIN_0// GPIO输入
#define EC11_B_GPIO_Group GPIOA
#define EC11_B_GPIO_PIN GPIO_PIN_1
void EC11_Decode(void (*Clockwise)(void), void (*Anticlockwise)(void));

C文件

void EC11_Decode(void (*Clockwise)(void), void (*Anticlockwise)(void))
{//Delay_ms(1);if (HAL_GPIO_ReadPin(EC11_B_GPIO_Group, EC11_B_GPIO_PIN) == GPIO_PIN_SET){Anticlockwise();}else{Clockwise();}
}

成品

GitHubhttps://github.com/HZ1213825/HAL_STM32F4_EC11/settings百度网盘https://pan.baidu.com/s/1TTc5ARIb-szfsha9MoE_lA?pwd=cwi9%C2%A0

【STM32F4系列】【HAL库】旋转编码器(EC11)相关推荐

  1. STM32F4系列HAL库配置定时器实验——输入捕获

    STM32F4系列HAL库配置定时器实验--输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率.我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数 ...

  2. STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例)

    STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例) 目录 STM32CubeMX | STM32 F1系列HAL库低功耗 ...

  3. STM32F1系列HAL库配置系统时钟

    STM32F1系列HAL库配置系统时钟 其实一开始对于时钟我也是知之甚少,在MSP432中我就一直忽视时钟配置,其实也是在STM32学习时落下的病根,现在趁有空补一下. 时钟简单讲解 对于时钟系统,在 ...

  4. STM32系列(HAL库)——F103C8T6通过MFRC522、RFID射频卡、门禁卡模块读取卡片ID(二)

    本文继上一篇:STM32系列(HAL库)--F103C8T6通过MFRC522.RFID射频卡.门禁卡模块读取卡片ID 本文介绍在运用RC522模块时,运用链表结构存储数据的操作 Let's go! ...

  5. 旋钮编码器c代码_旋转编码器EC11驱动

    旋转编码器EC11驱动 /*-------->>>>>>>>--------注意事项:EC11旋转编码器的扫描时间间隔控制在1~4ms之间, 否则5ms ...

  6. STM32 HAL库实现编码器测速

    STM32 HAL库实现编码器测速 (还开了串口1用来调试,下文没写:然后那个short的用法就是看平衡小车之家(就是喵呜实验室的文档里头的,用法确实惊艳),文末贴了工程) 编码器接口模式 TI1和T ...

  7. 编码电机测速(stm32f1/HAL库/CubeMX/编码器模式/平衡小车/直流减速电机/超详细)

    系列文章目录(STM32常用外设/HAL库版) 一.HC-SR04超声波模块的使用 二.OLED的HAL库代码介绍及使用 三.直流减速电机的测速以及电机驱动的使用(本篇) 文章目录 系列文章目录(ST ...

  8. 旋转编码器EC11调试心得

    手头的旋转编码器为20格一定位一脉冲,在静止的时候AB两线输出都是高电平.转动一格,AB两线各自输出一个低电平脉冲,然后又回到高电平状态.对应于EC11内部AB两个触点开关的动作为断开–>闭合– ...

  9. MPU6050(读取原数据、移植DMP、stm32f4、HAL库、KEIL5)

    记录一下自己遇到的问题及解决方法,希望能帮助到一些人. 第一步,读取芯片的原始数据.需要注意两点:1.对HAL库提供的IIC读取写入函数进行再包装.(千万不要觉的这步多此一举,后面移植DMP时用得到) ...

  10. STM32系列(HAL库)——F103C8T6通过NRF24L01(2.4G)无线模块进行双机通信

    本文参考:STM32L051C8T6 HAL库 + nRF24L01 收发案例(硬件SPI通讯) 1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) 2.硬件 ...

最新文章

  1. UVA 10795 新汉诺塔问题
  2. 作图像处理时常用的C/C++语句积累!
  3. linux上运行项目,发布项目到 Linux 上运行 Core 项目
  4. Redis快的原因:内存操作 单线程没有切换开销 多路复用IO
  5. Android程序的基本组件
  6. Excahnge 2010断开连接的邮箱无法找到
  7. could not change product header data even after switching to change mode
  8. 办公技巧:Excel日常高频使用技巧,赶快收藏吧!
  9. 美团点评移动端基础日志库——Logan
  10. 6-Arco大讲堂(一)
  11. 选考技术考计算机二级,计算机二级选考什么最简单啊```
  12. 社交网络分析中(SNA)的中心性(centrality) 度中心性(degree),接近中心性(closeness),中介中心性(betweenness)
  13. win10专业版和企业版的区别_Win10专业版和家庭版有什么区别?
  14. 数据库索引,真的越建越好吗?
  15. 使用nginx实现请求转发的功能
  16. 推荐给比较好用FF插件
  17. 你了解净水器滤芯知识多少?
  18. ActiveX控件打包cab时INF文件的编写
  19. 慕课网SSMOA办公系统
  20. SQL 分组排序及命令行运行脚本的例子 PsTools

热门文章

  1. 12306登录python_python tcp登录注册_12306注册登录入口
  2. x64dbg 调试 EXCEPTION_ACCESS_VIOLATION C0000005
  3. 安卓设置keychain_IOS的keychain的三种使用方法
  4. 王者荣耀微信有个服务器叫洛神降临,王者荣耀限定皮肤终于要返场啦 二周年限定居然是洛神降临_游戏吧手游网...
  5. egret新手引导反向遮罩
  6. Verilog HDL——运算符
  7. OSChina 周一乱弹 ——生死之际还能从容装逼,先生大才
  8. QuickBooks 2007 All-in-One Desk Reference For Dummies
  9. 4种解法 - 最小的k个数
  10. 先学java还是c_先学C语言还是Java