0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

蓝桥杯中GPIO输入之按键实验

撞上电子 2025-01-09 21:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第一节 按键的基本知识

按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关灯;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。

单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,按键信息输入时与软件结构密切相关的过程。

对于一组按键或一个键盘,总有一个接口电路与MCU相连。MCU可以采用查询或中断方式了解有无将按键输入,并检查是哪一个按键按下,将该键号送入程序,然后通过指令转入执行该键的功能程序,执行完成后再返回主程序。

按键通常使用机械触点式按键开关,其主要功能式把机械上的通断转换为电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便于通用数字系统的逻辑电平相容。机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定的时间触点机械抖动,然后其触点才稳定下来。

04865f58-ce8a-11ef-9434-92fbcf53809c.png

抖动时间的长短与开关的机械特性有关,一般为5~10ms。在触点抖动期间检测按键的通与断,可能导致判断出错,即按键一次按下或释放错误的被认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取消抖措施。硬件的消抖方案有很多种:在按键引脚与微控制器之间添加外部电路元件,如电容电阻或Schmitt触发器等,这些电路元件可以滤除按键的电气噪音,提供更稳定的电平信号

单片机控制系统中,如果只需要几个功能键,此时,可采用独立式按键结构。独立按键式直接用I/O口构成的单个按键电路,其特点式每个按键单独占用一根I/O口,每个按键的工作不会影响其他I/O口的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一个I/O口,因此,在按键较多时,I/O口浪费较大,不宜采用。

独立按键的软件常采用查询式结构。先逐位查询与I/O口的输入状态,如某一根I/O口输入为低电平,则可确认该I/O口所对应的按键已按下,然后,再转向该键的功能处理程序。

单片机按键一般通过配备上拉电阻来实现输入端高低电平的切换。

04a34cd0-ce8a-11ef-9434-92fbcf53809c.png

4条输入线接到单片机的IO口上,当按键K1按下时,+5V通过电阻R1然后再通过按键K1最终进入GND形成一条通路,那么这条线路的全部电压都加到了R1这个电阻上,KeyIn1这个引脚就是个低电平。当松开按键后,线路断开,就不会有电流通过,那么KeyIn1和+5V就应该是等电位,是一个高电平。我们就可以通过KeyIn1这个IO口的高低电平来判断是否有按键按下。

第二节 硬件解读

04c0ec72-ce8a-11ef-9434-92fbcf53809c.png

从图中我们可以看出,蓝桥杯物联网开发板上面有2个可编程按键,分别连接到PA8和PB8。如果PA8是高电平,就证明按键没有被按下,反之则被按下。

第三节 CubeMX配置

第一步:配置PA8和PB8为输入模式,如下:

04d906cc-ce8a-11ef-9434-92fbcf53809c.png

第二步:配置GPIO为上拉,并配置用户标签,如下图,

04fb586c-ce8a-11ef-9434-92fbcf53809c.png

其中:具体配置信息如下:

GPIO mode:表示输入模式,固定可为输入模式(Input mode);

GPIO Pull-up/Pull-down:表示是否上下拉,可配置为上拉(Pull-up)或者下拉(Pull-down)或不上拉也不下拉(No Pull-up and no Pull-down);

User Label:表示用户标签,可修改IO口名称,比如可写入KEY,把IO口名称变为KEY;

第四节 MDK代码

050928de-ce8a-11ef-9434-92fbcf53809c.png

结合上图,可以看出需要20ms的消抖时间。所以按键的模板代码如下:

0520127e-ce8a-11ef-9434-92fbcf53809c.png

不要忘记在.h文件中声明哦:

053af418-ce8a-11ef-9434-92fbcf53809c.png

最后我们在while中读取按键,就可以啦:

0553f580-ce8a-11ef-9434-92fbcf53809c.png

第五节 实验现象

注意:

1,请用USB线连接电脑与开发板。

2,请选择A开发板。

现象:

1,按下按键ASW1,AL1翻转一次。

2,按下按键ASW2,AL2翻转一次。

来源:撞上电子微信公众号

版权:东莞市东城墨竹公子电子工作室

日期:2024.11.03

第六节 课后作业

按下按键ASW1,AL3翻转。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6071

    文章

    45161

    浏览量

    655346
  • GPIO
    +关注

    关注

    16

    文章

    1294

    浏览量

    54585
  • 蓝桥杯
    +关注

    关注

    1

    文章

    129

    浏览量

    10519
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    蓝桥嵌入式STM32F103RBT6教程及常见问题有哪些

    蓝桥嵌入式STM32F103RBT6教程及常见问题蓝桥stm32嵌入式开发板如图所示:一、基本的硬件、软件连接问题以及编译问题:一、电
    发表于 07-15 06:07

    蓝桥嵌入式的相关资料下载

    蓝桥嵌入式比赛,开发板的主控芯片是stm32f103rbt6,芯片采用的架构是Cortex-M3。开发板上模块较少,在比赛中使用到的模块:1块LCD显示屏,4个独立按键,1个蜂鸣器
    发表于 10-27 09:55

    基于蓝桥实验平台的51单片机的知识

    单片机,因此想趁着闲暇时间总结一下基于蓝桥实验平台的51单片机的知识,顺便写几篇博客总结一下。最后祝愿所有参加蓝桥的朋友们都能够取得一个
    发表于 01-12 07:27

    蓝桥单片机设计与开发组竞赛,按键

    按键几乎也是每次蓝桥单片机设计与开发组竞赛的必考部分,因为这是CT107D开发平台上仅有的输入设备之一,而且按键也是单片机基础开发中常见的
    发表于 04-13 08:00 49次下载

    GPIO输入--按键

    程序简介 -工程名称:GPIO输入--按键 -实验平台: 秉火STM32 F429 开发板 -MDK版本:5.16 -ST固件库版本:1.5.1 【 !】功能简介: 使用两个
    发表于 12-12 19:08 3次下载

    【学习】蓝桥嵌入式--按键输入

    蓝桥必考的四个东西(至少我认为的是这样的)LED灯 LCD,按键,EEPROM。在上一篇文章介绍的是流水灯,这一篇就是按键输入。实现的任务
    发表于 10-20 12:06 1次下载
    【学习】<b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>嵌入式--<b class='flag-5'>按键</b><b class='flag-5'>输入</b>

    蓝桥嵌入式拓展板学习索引

    蓝桥嵌入式开发拓展板学习目录如果说你是刚开始准备学习拓展版,那就完全可以按着我这个顺序去学习。蓝桥嵌入式扩展板模块数码管
    发表于 10-21 09:51 3次下载
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>嵌入式拓展板学习索引

    蓝桥单片机开发 keil工程建立

    蓝桥单片机开发 keil工程建立
    发表于 11-13 14:06 11次下载
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b><b class='flag-5'>之</b>单片机开发  keil工程建立

    GPIO输入驱动实验按键控制

    GPIO输入驱动实验按键控制写在前面:和beep实验一样,在已有的工程框架上加功能就行了,冲!!!对了这次会对
    发表于 12-20 19:14 1次下载
    <b class='flag-5'>GPIO</b><b class='flag-5'>输入</b>驱动<b class='flag-5'>实验</b>-<b class='flag-5'>按键</b>控制

    蓝桥模块练习按键扫描

    蓝桥单片机比赛系列3按键扫描按键扫描原理及实现在独立键盘模式时,要将J5跳在BTN模式。也就是J52,3短路。此时S7,S6,S5,S4
    发表于 12-20 19:42 7次下载
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>模块练习<b class='flag-5'>之</b><b class='flag-5'>按键</b>扫描

    STM32 按键输入实验

    加粗样式一.实验目的1.熟悉使用STM32F4XX开发板2.掌握其GPIO的使用方法3.掌握按键的实现方法二.实现步骤(1)使能按键对应IO口时钟。调用函数
    发表于 12-27 18:53 4次下载
    STM32 <b class='flag-5'>按键</b><b class='flag-5'>输入</b><b class='flag-5'>实验</b>

    蓝桥单片机——独立按键、矩阵按键

    蓝桥单片机硬件基础独立按键跳线帽需要短接J5口的3和2引脚,按键能使用的仅有第一列(即上图中S4、S5、S6、S7)。当按键按下时,相应的
    发表于 12-31 19:29 1次下载
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>单片机——独立<b class='flag-5'>按键</b>、矩阵<b class='flag-5'>按键</b>

    GPIO输入——按键检测

    按键检测使用到GPIO外设的基本输入功能,本章不再赘述GPIO外设的概念,如您忘记了可重新回到第八章节进行阅读。
    的头像 发表于 02-15 15:45 3329次阅读
    <b class='flag-5'>GPIO</b><b class='flag-5'>输入</b>——<b class='flag-5'>按键</b>检测

    i.MX6ULL学习笔记:GPIO按键输入捕获

    掌握GPIO输入输出是必备技能,这篇推文继续来学习操作GPIO,这篇主要学习GPIO输入,通过使用
    的头像 发表于 04-06 10:37 1786次阅读

    详解GPIO输入实验

    在前两期的更新里,给大家介绍了STM32CubeMx的基础安装以及利用STM32CubeMx+MDK完成了GPIO输出实验(点亮一个LED灯),今天就给大家介绍GPIO输入
    的头像 发表于 07-02 16:36 1573次阅读
    详解<b class='flag-5'>GPIO</b><b class='flag-5'>输入</b><b class='flag-5'>实验</b>