STM32入门(九)----GPIO输入(按键检测)

本文介绍了STM32中GPIO用于按键输入的原理和实现,包括硬件消抖的基本概念,以及在key.h、key.c和main.c文件中的具体代码实现。通过配置GPIO初始化结构体,设置上拉或下拉输入模式,并使用延时函数进行软件消抖,实现对按键状态的稳定检测。在main.c中,根据按键检测结果控制LED灯的状态变化。
摘要由CSDN通过智能技术生成

GPIO输入(按键检测)

原理

硬件消抖:
以KEY1为例
当按键没有按下的时候,PA0接地,输入0。
当按键按下的时候,右边的电流通过,经过电容之后逐渐稳定,没有受到按键抖动的影响。
所以要将将引脚设置为上升沿触发。
野火的按键
这个是最简单的按键结构,没有用到硬件消抖,需要软件消抖。
就像是在51单片机里面软件消抖一样,需要延时20ms左右再去判断按键状态。
下面的代码是适用于这个原理图的(正点的板子)。
正点的按键

key.h

#ifndef __KEY_H
#define __KEY_H

#include "stm32f10x.h"
#include "sys.h"

#define KEY_0_GPIO_PIN   						GPIO_Pin_4/*GPIO引脚*/
#define KEY_0_GPIO_PORT  						GPIOE/*GPIO端口*/
#define KEY_0_GPIO_CLK   						RCC_APB2Periph_GPIOE/*GPIO端口时钟*/
#define KEY_0_APBxClock_FUN         RCC_APB2PeriphClockCmd/*端口使能*/

#define KEY_1_GPIO_PIN   						GPIO_Pin_3/*GPIO引脚*/
#define KEY_1_GPIO_PORT  						GPIOE/*GPIO端口*/
#define KEY_1_GPIO_CLK   						RCC_APB2Periph_GPIOE/*GPIO端口时钟*/
#define KEY_1_APBxClock_FUN         RCC_APB2PeriphClockCmd/*端口使能*/

#define KEY_UP_GPIO_PIN   					GPIO_Pin_0/*GPIO引脚*/
#define 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值