一、硬件部分

1、EC11硬件和时序

硬件不详细叙述,RC滤波一定要加,不然检测不准。

A为上升沿时,B为高电平。顺时针

A为下升沿时,B为低电平。顺时针

A为上升沿时,B为低电平。逆时针

A为下升沿时,B为高电平。逆时针

2、单片机接口

使用STM32 PA2(中断口),PA4(普通输入)。

二、软件部分

使用原子STM32F103寄存器模板。

1、GPIO初始化和宏定义

#define B_PORT   PAin(4)
#define A_PORT   PAin(2)void KEY_Init(void)
{RCC->APB2ENR|=1<<2;     //使能PORTA时钟GPIOA->CRL&=0XFFF0F0FF;   //PA2,4设置成输入  GPIOA->CRL|=0X00080800;
}

2、中断初始化

void EXTIX_Init(void)
{KEY_Init();Ex_NVIC_Config(GPIO_A,2,FRTIR); //上升沿、下降沿都触发MY_NVIC_Init(2,3,EXTI2_IRQn,2); //抢占2,子优先级3,组2
}

3、中断服务程序

char count=0;void EXTI2_IRQHandler(void)
{/*初始化采样值,防止干扰while值的判断*///char keytemp=0x55;    错误的static char keytemp=0x55;   //根据网友jwdeng1995  反馈指正  非常感谢/*keytemp&0X0F 表示只取末尾四位为有效值*//*0x0F 表示采样四次IO为高电平  表示IO状态稳定在高电平*//*0x00 表示采样四次IO为低电平  表示IO状态稳定在低电平*/while(((keytemp&0X0F)!=0x0F)&&((keytemp&0X0F)!=0x00)){/*间隔1us后采集*/delay_us(1);/*按键缓存器左移一位*/keytemp<<=1;/*当脉冲脚为高时 或称为A相*/if(A_PORT== 1){/*按键缓存器末尾补1*/keytemp |= 0x01;}}/*引脚电平稳定状态后判断AB脉冲 判断方向正反 然后加减脉冲*/if(A_PORT==1){if(B_PORT==1){count++;    /*A上升沿时 B为高 顺时针*/}else{count--;    /*A上升沿时 B为低 逆时针*/}}else{if(B_PORT==0){count++;    /*A下降沿时 B为低 顺时针*/}else{count--;    /*A下降沿时 B为高 逆时针*/}        }EXTI->PR=1<<2;  //清除LINE2上的中断标志位
}

本文到此结束。

本人比较懒,如果有错误欢迎指正。

欢迎有共同兴趣爱好的人加群交流:QQ群:37244526

EC11代码 旋转编码器相关推荐

  1. 让linux支持EC11等旋转编码器

    最近,产品基本定型了,所以开始着手升级版.说是升级版,只是在操作上面有所修改.产品需要使用旋钮进行人机交互.对linux驱动十窍通了九窍,一窍不通,所以从最低级的开始看起,然后把gpio_key.c这 ...

  2. 认识EC11旋转编码器编写驱动程序

    前言 抛开工作,以电子爱好者的身份,单片机玩多了都会想着在单片机的外围设备玩出一些花样来. 这其中首先想到的就是"升级"输入输出设备. 这里先说一说我们常给单片机使用的输入设备. ...

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

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

  4. 【STM32F4系列】【HAL库】旋转编码器(EC11)

    目录 概述 电气连接 波形分析 思路 HAL初始化 代码 成品 概述 EC11是一种增量型AB相旋转编码器 旋转编码器是一种可以无限旋转的旋钮,常被作为各种需要大量数据范围的情况(如收音机选台,音量选 ...

  5. EC11旋转编码器驱动程序

    EC11驱动程序 不多做介绍,百度上很多相关的介绍 首先,放上参考文档 代码有正转.反转.按下正转.按下反转.单机.双击.长按和长安松手检测,有什么问题可以在下方留言 我是对该文档代码进行一些修改,偏 ...

  6. linux4.6 EC11旋转编码器的驱动

    最近项目使用了旋转编码器EC11,遍查内核,发现并没有它的驱动,查了查CSDN,终于找到一篇有用的.根据自己的需要和对最基础的gpio_key.c的理解,我改写出了一份EC11的专用驱动. 感谢下面博 ...

  7. EC11旋转编码器,stm32f103驱动程序

    EC11旋转编码器,stm32f103驱动程序 1.EC11手册的要点 手册中推荐的电路(已含有RC滤波): 输出波形特点: 2.硬件电路 3.驱动程序关键点 4.输出现象 1.EC11手册的要点 注 ...

  8. STM32CubeMX EC11旋转编码器开发心路历程(encode模式 外部中断模式 普通IO口模式 定时器模式探索)

    文章目录 ENCODE模式探索 普通IO口探索 定时器使用 外部中断探索 编码器开关的理解 最后的实现方案 这篇文章主要还是记录整个过程以及想法的不断改进,对于一些实际的操作还有代码,我准备都分开写到 ...

  9. ESP32(IDF)EC11旋转编码器使用总结

    ESP32(IDF)EC11旋转编码器使用总结 一.调试过程中遇到的问题 二.硬件 三.电路 接线说明: 四.工作原理 正转波形 反转波形 五.判断正反转 法一 代码实现 结果 法二 法三 代码实现 ...

最新文章

  1. 做工程师不懂这七点,难怪你总是混不好
  2. 【Socket网络编程】6.两个既能收也能发的udp客户端进行通信的原理
  3. 【转】gl_NormalMatrix
  4. RabbitMq--2--安装
  5. 为什么数组是从0开始的
  6. spark 常用函数介绍(python)
  7. 网上图书商城项目学习笔记-008修改密码功能
  8. IBM与西班牙桑坦德银行合作,推广企业级 iOS 银行应用
  9. ai如何置入_AI中如何导入图形图像?
  10. Windows平台调查网络程序的2个系统工具
  11. rdbms mysql_不同RDBMS下Join 用法 - MySQL
  12. linux下使用ffmpeg下载m3u8视频
  13. ASP.NET 中处理客户端数字证书
  14. 计算机浏览器,有哪些好用的PC浏览器?
  15. python计算gpa,Python版GPA计算器
  16. 数据网站 免费数据网站
  17. led手电筒烧灯珠_浅谈务优LED手电筒灯珠型号与区别技巧
  18. 数商云采购管理系统:阳光采购,高效降本
  19. 免费虚拟现实运用开发平台VR Juggler
  20. jemter在linux上怎么安装_jmeter 在linux服务器的安装和运行教程图解

热门文章

  1. mysql安装 未将对象引用设置到对象的实例._未将对象引用设置到对象的实例--可能出现的问题总结...
  2. 什么是前端(web front end)?
  3. 汇丰银行在AI和数字创新方面投入23亿美元的资金
  4. pythonchallenge闯关游戏_pythonchallenge解密
  5. 无法启动此程序 因为计算机中丢失 msvcp71.dll,Win7开机异常并提示msvcp71.dll文件丢失不见了...
  6. 快速解决 PS 2023 插件未经正确签署问题,超简单方便
  7. 【jsp】jsp简介
  8. Origin_相关性分析
  9. 三、MapReduce编程实例
  10. 谷歌也玩起了新零售?!