首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于stm32f030水温控制1

前言

承接上一篇的水温控制,这一篇我们把控制设定温度的旋转编码器EC11讲一下.

EC11预备知识

EC11旋转编码器是一种小型高精度旋转式编码器,在结构上,由编码器部分和按键部分组合而成,这里我用到了EC11A相和B相与一个按键.我们需要编写的就是如何判断旋转的方向与按键的检测.

从图中我们可以看出, `假设检测A相上升沿,我们只需判断B相的高低电平就可以知道旋转的是正向或是逆向,知道了如何检测,配置就方便多了,接下来我们讲一下如何配置.

EC11配置

时钟配置这边由于我的A相B相和按键所在IO都在PA上,所以我打开了GPIOA的时钟,由于需要映射中断管脚,所以开启了SYSCFG时钟.

管脚配置这边,直接配置IO为上拉输入,这里有别与F1系列的我上一篇已经讲过了.这里就不多说了

中断,要映射管脚,这里我用的是PA10,所以映射了中断线10,配置好中断,我们就只需要在中断函数里检测另一相的电平就可以了,这里我就不在多说了.

最后设置一下中断优先级就可以了.

按键配置

按键的配置其实上面已经有了,这里我们讲一下如何检测按键,通常扫按键的方法都是延时10ms,但是这种方式延时,不一定能达到我们要的效果.所以这里我介绍一下状态机按键消抖的方式.

通过上面的状态跳转,实现判断按键抬起、长按、连按,相比延时扫描按键的方法,好了很多.

结语

这里简单的讲了EC11AB相的检测以及按键的扫描方法,如果文中有哪些错误,希望你能给我发邮件告知,感激不尽.

最后在推一下我的博客:https://syydnrycx.github.io/

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180410G1WCYK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券