[5]STM32按键输入实验-GPIO做输入

本文介绍STM32按键输入实验,包括两种按键模式:持续响应和仅响应一次,并通过硬件设计和程序设计详细阐述。实验中,按键控制蜂鸣器和LED灯的状态切换,涉及IO口初始化、时钟使能和按键模式检测函数的实现。
摘要由CSDN通过智能技术生成

前言

STM32按键输入实验会把之前的LED灯和蜂鸣器的控制加入进来,通过按键来进行控制,是一个综合性比较高的实验。最后要实现的目的是:KEY_UP 控制蜂鸣器,按一次叫,再按一次停; KEY1 控制 DS1,按一次亮,再按一次灭; KEY0 则同时控制 DS0 和 DS1,按一次,他们的状态就翻转一次。除此之外还要弄清楚两种按键逻辑,一种是按了之后只触发一次,另一种是按下之后连续触发,在下面我会着重写一下这方面的内容。

硬件设计

在这里插入图片描述
我用的是正点原子的精英版,硬件设计如上图所示,如图可以看到WK_UP默认是低电平,按钮按下才是高电平。所以应该是下拉输入,反之KEY0和KEY1就应该是高电平,使用上拉输入。而KEY0,KEY1接入是PE3和PE4,WK_UP是PA0,等会也要对这几个端口时钟进行使能和初始化IO口,步骤同于之前的点亮LED灯。

两种按键模式程序设计

1.持续按下按钮持续响应

和电视机遥控板按钮一样,按下按钮之后它只一直响应(比如一直换台),直到你松开按钮之后它才停止响应,对于这种模式的程序,可以通过如下程序进行设计

u8 KEY_Scan(void)  //定义一个扫描函数,检测按钮是否按下࿰
  • 12
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值