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

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

3天内不再提示

第七章独立按键控制LED

撞上电子 2023-06-21 17:41 次阅读

第一节按键的基本知识

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

dc32ce60-1017-11ee-a579-dac502259ad0.png


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

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

第二节硬件解读

dc45437e-1017-11ee-a579-dac502259ad0.png

从图中我们可以看出,按键的引脚连接到PC14,所以我们只需要读取PC14的电平就可以了。当按键被按下,按键的1,4和2,3导通,按键的1,4接地,导致R12也接地,所以PC14也就是低电平。由此我们知道,当按键按下时,PC14为低电平;反之为高电平。

第三节 CubeMX配置

第一步:配置PC14为输入,并配置上拉(下图4处)和标签(下图5处)。

dc50a3c2-1017-11ee-a579-dac502259ad0.png

第二步:配置LD5,如下图:记得将初始化电平设置为高电平(下图5处),这样最开始LD5是熄灭状态。

dc6aa682-1017-11ee-a579-dac502259ad0.png

第四节 MDK代码

dc865e72-1017-11ee-a579-dac502259ad0.png

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

dc9528b2-1017-11ee-a579-dac502259ad0.png

第五章 实验现象

注意:

1,下载程序的时候,请选择A开发板。

现象:按下USER,LD5翻转一次。

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

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

日期:2023.06.06

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

    关注

    242

    文章

    23264

    浏览量

    660655
  • 控制
    +关注

    关注

    4

    文章

    1011

    浏览量

    122661
收藏 人收藏

    评论

    相关推荐

    洲明科技荣获第七届天鸽奖“年度影响力企业奖”

    近日,第七届“天鸽奖”颁奖典礼在洲明福永总部XR虚拟棚圆满落幕。
    的头像 发表于 12-17 11:05 215次阅读

    告别繁琐按键,双触摸LED让你轻松调光调色!

    方案开发双触摸按键LED单/双色温驱动控制方案-ZHUOLIANWEIKEJI-定制服务品质保障技术领先在现代家居与照明设计中,便捷性、智能化以及个性化需求日益增长。传统的按键控制方式
    的头像 发表于 12-07 01:08 112次阅读
    告别繁琐<b class='flag-5'>按键</b>,双触摸<b class='flag-5'>LED</b>让你轻松调光调色!

    《DNESP32S3使用指南-IDF版_V1.6》第七章 分区表

    第七章 分区表 分区表,主要是用来对ESP32外挂的SPI FLASH进行区域划分的一个表格,通过一个表格,可以根据多个不同的功能,将SPI Flash划分为不同的区域,方便开发者存储数据。本章
    发表于 12-03 15:15

    博世第七季“数据时代”活动圆满结束

    博世汽车电子事业部中国区第七季“数据时代”活动于2024年10月30日成功举办!
    的头像 发表于 10-31 14:07 239次阅读

    《DNK210使用指南 -CanMV版 V1.0》第七章 基于CanMV的MicroPython语法开发环境搭建

    第七章 基于CanMV的MicroPython语法开发环境搭建 前面章节中已经介绍了如何编译CanMV固件,并将编译好的CanMV固件烧录至Kendryte K210,本章将介绍如何在Windows
    发表于 09-13 09:30

    【xG24 Matter开发套件试用体验】通过按键控制LED

    点完灯了,来玩点花样,通过按键来点灯。 硬件 还是看这个图 按键有 BUTTON0(PB02)和BUTTON1(PB03) 软件 这里基于blink_baremetal 工程进行修改适配。 这里进行GPIO的配置,配置好两个led
    发表于 09-01 17:21

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

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

    【xG24 Matter开发套件试用体验】7-按键点亮LED

    1介绍 之前已经点亮LED灯,并能通过延时实现LED闪烁,这里实现通过按左键控制LED灯,按下按键时对应的
    发表于 08-03 14:54

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

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

    CW32数字电压电流表软件教程-实验二:按键检测

    3.1.独立按键基础知识 3.1.1.独立按键结构组成 独立按键实际上是一个非自锁的轻触开关,有
    的头像 发表于 05-31 15:16 858次阅读
    CW32数字电压电流表软件教程-实验二:<b class='flag-5'>按键</b>检测

    【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第七章)序列检测器实验例程

    控制是否检测;输出用LED来显示及保存特定序列,同时也将特定序列与检测使能信号传递给检测模块;2、序列对比模块;由拨码开关提供待检测序列,接收按键控制模块传递过来的特定序列与检测使能信号控制
    发表于 05-23 14:45

    两片stm8s实现can通信,发送端通过按键控制接受端的pwm应该怎么写?

    两片stm8s实现can通信,发送端通过按键控制接受端的pwm应该怎么写,使用的是stm8s208r8
    发表于 05-11 06:04

    请问怎么用按键控制1602中的5*8点阵亮灭及加减?

    请问怎么用按键控制1602中的5*8点阵亮灭及加减
    发表于 05-07 08:04

    32无法正常控制继电器开关水泵或电机

    直流电机,一样不能用的现象 以同样方式,继电器控制LED、加热片、制冷片等器件,均可实现正常按键控制开关。 以同样方式,主控芯片使用89C52,好像也是可以正常响应按键控制继电器开关
    发表于 02-29 15:47

    【紫光同创国产FPGA教程】——(PGL22G第二键控流水灯实验例程

    1~ USER_LED8 的输出效果。 三:实验原理 实现框架如下: (1)顶层实现按键切换 LED 的流水灯状态; (2)需要设计一个输入控制模块及一个输出
    发表于 01-05 11:22