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
    +关注

    关注

    243

    文章

    24438

    浏览量

    687497
  • 嵌入式
    +关注

    关注

    5186

    文章

    20153

    浏览量

    328937
  • 按键
    +关注

    关注

    4

    文章

    229

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2025“芯原”全国嵌入式软件开发大赛圆满落幕

    此前,2025年7月20日至26日,第四届“芯原”全国嵌入式软件开发大赛决赛在海口成功举办。
    的头像 发表于 08-06 09:51 1109次阅读

    BitsButton嵌入式按键处理框架

    配备了完整的按键测试用例,专为嵌入式C项目设计: 详情见:按键测试用例 ?️ 分层架构设计 核心层(core/): 测试框架基础设施和运行器 工具层(utils/): 模拟工具、时间控制
    发表于 08-02 11:24

    初级工程师PCB设计技巧(PPT版)

    目录第一:PCB 概述第二:PCB 设计流程及PCB Layout 设计第三: PROTEL 常用操作第四章: PCB Layout 技巧 获取完整文档资料可下载附件哦!!!!
    发表于 06-26 15:50

    第四章 什么是寄存器

    本篇文章我们讲解了寄存器的概念、地址映射和寄存器操作等内容,内容比较干,大家有个概念即可,不要求全部熟记掌握,有需要时可重复查阅观看。下一篇我们将开始进行实操内容,通过控制单片机的GPIO来点亮一颗LED,敬请期待!
    的头像 发表于 05-21 14:23 1142次阅读
    <b class='flag-5'>第四章</b> 什么是寄存器

    嵌入式开发入门指南:从零开始学习嵌入式

    基础 3. 学习路径推荐第一阶段:熟悉开发环境(如Keil、IAR、STM32)第二阶段:掌握裸机编程与驱动开发第三阶段:学习RTOS(实时操作系统)如FreeRTOS第四阶段:深入理解Linux嵌入式
    发表于 05-15 09:29

    基于51/32单片机按键控制步进电机正反转,A4988驱动

    基于51/32单片机按键控制步进电机正反转,A4988驱动
    发表于 04-14 15:05 6次下载

    第四章 定时任务】手把手教你玩转新版正点原子云

    第四章 定时任务】手把手教你玩转新版正点原子云 承接上篇,除了报警联动这个功能,原子云还有一个特色功能也是各开发者喜欢用的,定时任务功能。 【正点原子】云平台:原子云(点击登录原子云) 前言
    发表于 03-13 10:19

    汽车电路初识

    第一 汽车电路分析基础第二 汽车电路图识读第三 典型汽车电器电路分析第四章 汽车电路检修第五 汽车电子电路图识读
    发表于 03-10 18:04 7次下载

    怎么嵌入式linux下控制dlp?

    请问怎么嵌入式linux 下控制dlp,有没有支持
    发表于 03-03 07:02

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对
    的头像 发表于 01-13 16:30 1187次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    蓝桥中GPIO输入之按键实验

    常见的是触点开关按键。在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的
    的头像 发表于 01-09 21:02 1348次阅读
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>中GPIO输入之<b class='flag-5'>按键</b>实验

    蓝桥物联网开发板硬件组成

    第一节开发板简介物联网设计与开发竞赛实训平台由蓝桥大赛技术支持单位北京梯科技有限公司设计和生产,该产品可用于参加蓝桥物联网设计与开发赛
    的头像 发表于 12-22 21:30 2181次阅读
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>物联网开发板硬件组成

    蓝桥该如何备赛?

    蓝桥物联网已经换了三次开发板了,每次换板子,题目难度都会降低不少,所以说,蓝桥物联网在蓝桥
    的头像 发表于 12-19 21:02 2121次阅读
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>该如何备赛?

    新手怎么学嵌入式?

    的基础上增加了面向对象编程的特性,有助于编写更复杂的嵌入式程序。 3. 学习硬件知识 嵌入式技术与硬件紧密相关,因此你需要了解一些基本的硬件知识。比如微控制器(MCU)、微处理器(MPU)的工作原理,了解
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统中的一种技术。嵌入式系统是嵌入到其他设备或系统中的计算机系统,通常用于控制、监测或执行特定任
    的头像 发表于 12-11 09:23 1520次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能