STM32的按键原理和编程过程

按键原理

在这里插入图片描述
WK_UP接VCC3.3,是高电平,当WK_UP==1的时候处于开启状态
KEY0和KEY1都接在GND上面,是处在低电平,当KEY0 和 KEY1=0时处于开启状态。

WK_UP接PA0;KEY0接PC5;KEY1接PA15。

mode:0,不支持连续按;1,支持连续按;

key_up=0是按下去;key_up=1是弹出来;

按键编程

实验的主要功能:用三个按键来控制灯的亮灭情况

1、建立led和key的.c文件和.h文件。led.h文件头文件如下:
在这里插入图片描述
key.h文件头文件如下:
在这里插入图片描述


2、写出"led.c"的程序:
引用"led.h"的头文件
写出灯程序
{
定义结构体
使能GPIOA、GPIOD的时钟函数
写出GPIOA、GPIOD分别的内置程序:
GPIO_InitStructure的三个方面:Pin、Mode、Speed,并配置三个方面的格式,根据设定参数初始化
再写出那个端口的输出高即灯灭
}



3、写出"key.h"的程序:
调用key.h的头文件
再调用delay.h的头文件
写出按键程序
{
定义结构体
使能GPIOA、GPIOC的时钟函数
关闭jtag,使能SWD,可以用SWD模式调试
写出KEY0、KEY1、WK_UP分别的内置程序:
GPIO_InitStructure的两个方面:Pin、Mode,并配置两个方面的格式,根据设定参数初始化
再处理按键函数
{
按键松开标志(注意静态工作变量)
选择是否连按
选择if(key_up&&(KEY00||KEY10||WK_UP1))或者   (KEY01&&KEY11&&WK_UP0)
}
}



4、写出主的程序:
引用"led.h"、“delay.h”、“sys.h”、"key.h"的头文件
写出主程序
{
初始化延时函数、KEY函数、LED函数
写一个开关函数
设置使用按键控制小灯反装
}

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32按键控制LED灯亮灭的原理如下: 1. 硬件连接: 将LED灯连接到STM32的一个GPIO引脚,通常使用一个限流电阻将LED与引脚相连。 将按键连接到另一个GPIO引脚,通常使用一个上拉电阻将按键与引脚相连。 2. 软件配置: 首先,需要在STM32的开发环境中配置GPIO引脚的工作模式。将LED所连接的引脚配置为输出模式,将按键所连接的引脚配置为输入模式。 3. 编程实现: 在程序中,需要不断地读取按键的状态,并根据按键状态来控制LED的亮灭。 3.1 读取按键状态: 使用相应的GPIO库函数读取按键引脚的状态,例如可以使用HAL库中的GPIO_ReadPin函数。 3.2 控制LED灯亮灭: 根据按键状态来控制LED灯的亮灭。当按键被按下时,读取到的按键状态为低电平,此时可以使用GPIO库函数将LED引脚输出低电平来使LED灯亮起。当按键未被按下时,读取到的按键状态为高电平,此时可以使用GPIO库函数将LED引脚输出高电平来使LED灯熄灭。 4. 循环执行: 在主循环中不断地读取按键状态并控制LED灯的亮灭,以实现按键控制LED灯的功能。 需要注意的是,在实际开发中,可能还需要考虑消抖处理、按键事件触发条件等问题,以确保按键控制LED灯的可靠性和稳定性。以上是按键控制LED灯亮灭的基本原理,具体的实现代码可以根据所用的开发环境和STM32系列型号进行相应调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值