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

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

3天内不再提示

【蓝桥杯嵌入式】第四章 按键控制LED

撞上电子 2023-09-27 08:00 次阅读

第一节 按键的基本知识

按键的最基本的知识就是消抖,它分为软件消抖和硬件消抖。其中,软件消抖流程为:当检测到按键按下时,启动一个延时,持续一段时间(通常几毫秒);在延时结束后,再次读取按键状态;如果按键仍然处于按下状态,那么可以确定按键的状态为按下;否则,可以确定按键的状态为释放;软件消抖通过延时等待按键电平的稳定来避免误触发。如下图:

ebaef9ec-5cc8-11ee-9788-92fbcf53809c.png


硬件的消抖方案有很多种:在按键引脚与微控制器之间添加外部电路元件,如电容电阻或Schmitt触发器等,这些电路元件可以滤除按键的电气噪音,提供更稳定的电平信号

蓝桥杯嵌入式开发板并没有在硬件上处理,所以只能通过软件的方式来消抖。

第二节 硬件解读

ebc1d242-5cc8-11ee-9788-92fbcf53809c.png

从图中我们可以看出,一共有4个按键,每一个按键的原理图都是一样的,我们举一个例子吧,以PA0为例,当按键被按下,按键的1,2和3,3导通,按键的3,4接地,导致PA0也接地,所以PA0也就是低电平。由此我们知道,当按键按下时,PA0为低电平;反之为高电平。

以下是按键和引脚的关系:

按键

引脚

B1

PB0

B2

PB1

B3

PB2

B4

PA0


第三节 CubeMX配置

配置PB0,PB1,PB2,PA0为输入模式,并配置上拉和标签【注意:配图有误,配图为输出模式,正常是输入模式】

ebcb26b2-5cc8-11ee-9788-92fbcf53809c.png

第四节 MDK代码

ebd9f098-5cc8-11ee-9788-92fbcf53809c.png

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

ebe990c0-5cc8-11ee-9788-92fbcf53809c.png

ebf2afde-5cc8-11ee-9788-92fbcf53809c.png

ec0d2cce-5cc8-11ee-9788-92fbcf53809c.png

ec255cae-5cc8-11ee-9788-92fbcf53809c.png

ec41cd58-5cc8-11ee-9788-92fbcf53809c.png

第五节 实验现象

注意:请用USB线连接电脑与开发板,注意是CN2口。

现象:LED闪烁一次,按下按键,对应的LED翻转一次。

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

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

    关注

    242

    文章

    23174

    浏览量

    658802
  • 嵌入式
    +关注

    关注

    5076

    文章

    19045

    浏览量

    303860
  • 按键
    +关注

    关注

    4

    文章

    223

    浏览量

    57580
收藏 人收藏

    评论

    相关推荐

    【北京迅为】i.mx8mm嵌入式linux开发指南第四嵌入式Linux系统移植篇第六十九章uboot移植

    【北京迅为】i.mx8mm嵌入式linux开发指南第四嵌入式Linux系统移植篇第六十九章uboot移植
    的头像 发表于 10-22 14:46 532次阅读
    【北京迅为】i.mx8mm<b class='flag-5'>嵌入式</b>linux开发指南<b class='flag-5'>第四</b>篇 <b class='flag-5'>嵌入式</b>Linux系统移植篇第六十九章uboot移植

    AMD 面向嵌入式系统推出高能效 EPYC 嵌入式 8004 系列

    AMD 凭借其 EPYC™ 嵌入式处理器不断树立行业标准,为网络、存储和工业应用提供卓越的性能、效率、连接与创新。今天,我们正以第四代 AMD EPYC 嵌入式 8004 系列处理器扩展这一
    发表于 10-11 13:58 700次阅读

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第7-8学习心得

    这是一本很好的学习嵌入式的书籍。 在深入学习《嵌入式Hypervisor:架构、原理与应用》的第7-8后,我对嵌入式Hypervisor的架构、原理及其在实际应用中的重要性有了更为深
    发表于 10-09 18:50

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第三四章阅读报告

    在深入阅读了《嵌入式Hypervisor:架构、原理与应用》的第三、四章后,我对嵌入式Hypervisor的设计与实现技术有了更为详尽和系统的理解。以下是我对这两内容的阅读报告:
    发表于 10-09 18:29

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第一二读后感

    非常感谢社区提供的阅读机会,拿到书后,就迫不及待的的开始阅读了。 社区还有签名留念呢,值得纪念。 《嵌入式Hypervisor:架构、原理与应用》的第一、二为读者提供了关于Hypervisor技术
    发表于 10-09 18:22

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备
    的头像 发表于 09-30 10:05 397次阅读

    第四章:对广东龙芯2K0300-蜂鸟板-v1.0视频教程我的感触

    服务器、台式机、嵌入式。 龙架构应用开发与适配迁移技术.mp450:39分钟47.41MB 文件大小 2024-04-30发表。其内容是龙架构应用开发与迁移适配技术,龙芯云平台,应用软件迁移的本质,迁移
    发表于 09-11 18:10

    【「ARM MCU嵌入式开发 | 基于国产GD32F10x芯片」阅读体验】+书籍整体概况

    案例为按键控制LED亮灭;第四章介绍了中断和事件,中断包含嵌套向量中断控制器NVIC,EXTI外部中断/事件控制器以及EXTI外部中断处理的
    发表于 08-25 22:48

    学习hypervisor嵌入式产品安全设计

    第一部分(第1~2)介绍Hypervisor基础,涵盖虚拟化技术与实现、主流的嵌入式Hypervisor产品,以及基于分离内核的嵌入式Hypervisor等内容。第二部分(第3~12
    发表于 08-25 09:11

    第四章-V1.5 舵机 舵机角度控制 PWM控制红外对管和按键控制 STM32驱动舵机控制 SG90控制

    由于C8T6小板子的PA12接了上拉电阻,所以使用PA12的时候要注意。而且如果我们用Mrico USB供电 可能会影响PA11。
    的头像 发表于 08-15 16:20 472次阅读
    <b class='flag-5'>第四章</b>-V1.5 舵机 舵机角度<b class='flag-5'>控制</b> PWM<b class='flag-5'>控制</b>红外对管和<b class='flag-5'>按键控制</b> STM32驱动舵机<b class='flag-5'>控制</b> SG90<b class='flag-5'>控制</b>

    双麒麟系统!迅为RK3588开发板+银河麒麟/开放麒麟

    Build root系统功能测试 第四章 Ubuntu系统功能测试 第五 Debian系统功能测试 第六 openkylin系统功能测试 第七 银河麒麟系统功能测试
    发表于 07-15 10:35

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案。嵌入式系统是一种为特定应用而设计的计算机系统,它通常包括处理器、内存、外设接口等组件,并且被嵌入到更大的设备或系统中,
    的头像 发表于 03-15 14:29 1208次阅读

    聊聊嵌入式软件分层

    今天以控制LED闪烁为例,聊聊嵌入式软件分层
    的头像 发表于 12-28 09:22 646次阅读

    什么是嵌入式系统?嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统。用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 2435次阅读

    STM32按键控制LED的亮灭

    使用一个按键控制LED的亮灭,按键按下时LED亮起,按键松开时LED熄灭。通过
    的头像 发表于 12-11 14:19 3650次阅读
    STM32<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b>的亮灭