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

    关注

    244

    文章

    24703

    浏览量

    692371
  • 嵌入式
    +关注

    关注

    5209

    文章

    20625

    浏览量

    336758
  • 按键
    +关注

    关注

    4

    文章

    229

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式新手必看!GPIO调试从0到1:计算、操作、排错全指南

    嵌入式开发中,GPIO(通用输入输出口)是最基础也最常用的硬件接口 —— 小到控制一颗 LED 亮灭、读取一个按键状态,大到驱动传感器、控制
    的头像 发表于 02-01 16:55 3897次阅读
    <b class='flag-5'>嵌入式</b>新手必看!GPIO调试从0到1:计算、操作、排错全指南

    【「龙芯之光 自主可控处理器设计解析」阅读体验】+可测试性设计章节阅读与自己的一些感想

    作为嵌入式底层开发,对第四章可测试性的内容比较感兴趣,因为嵌入式底层开发如何测试是一个很重要的内容,一些芯片的可测试性设计做得很好,就更方便调试与查找问题有开发。 所以就来阅读下本章,分享下书中内容
    发表于 01-15 23:30

    什么是嵌入式应用开发?

    系统中,用于控制、监测或通信等特定用途。与一般计算机系统不同,嵌入式系统通常具有较小的存储容量、处理能力和功耗,且需要满足特定的实时性、可靠性和安全性要求‌。 应用领域 嵌入式系统广泛应用于各种设备
    发表于 01-12 16:13

    【瑞萨RA × Zephyr评测】LED按键和UART

    实现在Zephyr操作系统下按键控制 LED 的开关状态,并通过 UART 输出按键事件日志,验证 GPIO 和串口通信功能。
    的头像 发表于 01-10 10:21 2584次阅读
    【瑞萨RA × Zephyr评测】<b class='flag-5'>LED</b>、<b class='flag-5'>按键</b>和UART

    嵌入式通信技术转型:MCU+AT向OpenCPU的必然性深度拆解(下篇)

    重重障碍,实现从“外部控制”到“一体自治”的全面跃迁吗? 第四章:OpenCPU相较MCU+AT的七大核心优势 当我们把“通信模组+MCU”变成“可独立运行的模组”,所获得的不只是省下一颗芯片,而是系统层面的范式升级。 OpenCPU的核心价值不在于“少一颗MCU”, 而
    的头像 发表于 12-03 16:54 430次阅读
    <b class='flag-5'>嵌入式</b>通信技术转型:MCU+AT向OpenCPU的必然性深度拆解(下篇)

    嵌入式从入门到进阶,怎么学?

    嵌入式从入门到进阶,怎么学? 嵌入式学习的核心是 “软硬结合的技术壁垒”,科学分层才能高效突破。以下是从入门到高阶的精简路线,帮你避开弯路: 1、基础奠基层:构建技术底座 C 语言聚焦 指针、结构体
    发表于 09-02 09:44

    入行嵌入式应该怎么准备?

    任务调度的代码是非常重要的。此外,了解操作系统内核的工作原理以及与硬件交互的方式也是必须的。 、通信协议嵌入式系统通常需要与其他设备或系统进行通信。了解常见的通信协议(如UART、SPI、I2C
    发表于 08-06 10:34

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

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

    BitsButton嵌入式按键处理框架

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

    【「DeepSeek 核心技术揭秘」阅读体验】--全书概览

    讲解Deepseek的使用方法 第三 深入剖析Deepseek-V3的模型架构、训练框架、推理阶段优化、后训练优化等关键技术 第四章关于DeepSeek-R1的技术剖析 第五 从宏观角度分析
    发表于 07-21 00:04

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

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

    Linux嵌入式和单片机嵌入式的区别?

    Processor Unit)。 2. 单片机嵌入式(也称为嵌入式微控制器MCU): 定义:一种集成电路,能够在一个芯片上完成各种计算、控制和管理任务。 特点:小型化、低功耗、成本低、可靠性高
    发表于 06-20 09:46

    第四章 什么是寄存器

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

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

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

    嵌入式适合自学吗?

    基础。对于初学者来说,很难在短时间内建立起完整的知识体系。 2)学习曲线陡峭:嵌入式开发需要掌握多种编程语言、硬件知识、操作系统原理等,学习曲线非常陡峭。例如,学习STM32微控制器时,需要理解其基本架
    发表于 04-27 09:54