找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5768|回复: 0
打印 上一主题 下一主题
收起左侧

STM32按键操作-自己写的一些基础的如查手册、编译等教程

[复制链接]
跳转到指定楼层
楼主
ID:487068 发表于 2019-3-8 19:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过lcd1602显示,有两个界面,可以用四位的独立键盘进行调位、加减、切换界面。

按键
一、实验目的
二、按键原理图
三、相关操作函数
四、关于消抖
五、按键控制实现程序
六、HAL库的按键实现
七、一些思考与问题

  • 实验目的
  • 在流水灯实现中,我们通过对GPIO与LED灯相连的相应引脚输出高低电平来控制灯的亮灭。使用的是输出模式。
  • 今天的实验学习要使用GPIO口的输入模式,通过对与按键相连的引脚数据的读取来控制灯的亮灭。
  • 了解什么是按键抖动和软件消抖的方法。
  • 实验板原理图
  • 在图中我们看到,KEY1键和KEY234有些不同。KEY1键按下输出为高电平,而其他三个键按下左接地出低电平。
  • 同时可以看出KEY1GPIOA的0号引脚,KEY2、3、4分别接GPIOE的1、2、3号引脚。
  • 相关操作函数
  • 除了我们在流水灯中讲到的时钟使能函数,几个GPIO控制函数外,仅需要用到另外一个GPIO控制函数,函数定义如下图。(同样是在上章提到的固件库中
  • 该函数是读入引脚信号的,既可以用于读按键信号
  • 当然,除了按位读取,也可以多位读取,相关的函数有兴趣可自己查阅固件库。
  • 关于消抖
  • 什么是按键抖动?
机械的按键结构中必然有弹簧,由于弹簧的弹性,按键按下或松开的短暂过程中不会立即改变电平状态,而是需要一定的接触、不充分接触、断开导致的电平变化过程,一定时间后才能稳定电位,称之为抖动。
  • 抖动会影响按键状态的读取,需要通过消除抖动来达到确定按键状态,方法有硬件消抖和软件消抖。本实验板不具备硬件消抖,既必须通过软件进行消抖。
  • 软件消抖有什么方法呢?
  • 通过中断,定时读取引脚状态,确定时限内连续几次读入状态一致,则可确定其进入抖动后的稳定状态,则可开始下一步操作。但目前我们未学习使用STM32的中断控制,所以不采用这种方法。
  • 第二种方法是延时。在第一次读到某种状态后,通过延时函数使CPU合适的时间的无意义操作后,再次读取状态,若两次状态,则可以认为进入稳定装入,则可开始下一步操作。
  • 按键控制实现程序
六、HAL库的按键实现
  • 同样是像流水灯中介绍的方式创建工程,设置时钟,设置灯的引脚状态。但多了对按键引脚的设置。找到PA0和PE1设置为输出推挽不上不下拉低速模式。其他步骤流水灯工程创建一致。
  • 接下来我们看具体的程序。
  • 一些思考与问题
这两个库的程序在判断按键状态的时候是并行判断,准确来说是一个先一个后的if判断,并没有讨论同时按下两个键如何判断和操作原则。虽然这种if并行判断可以处理一些同时按下的情况,但不能对应到所有的情况。那么,可以思考下,如何实现双键按下的判断?

完整的Word格式文档51黑下载地址:
按键.docx (1.05 MB, 下载次数: 34)
流水灯.docx (4.7 MB, 下载次数: 19)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表