STM32按键检测与上拉电阻详解

(一)硬件结构

由数据手册可知,单片机的按键部分采用了,上拉电阻的方式。所以,默认电平为高电平,即按键没有按下时为高电平。按键按下后为低电平。

按键使用到的GPIO口有:

PB0-2,PA0

(二)按键示例代码

1.stm32cubemx配置

将PB0-2,PA0设置为上拉输入模式

2.示例代码

cpp 复制代码
void Key_show(void)
{
    //读取引脚现在的状态
    key_now_1 = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0);
    key_now_2 = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1);
    key_now_3 = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2);
    key_now_4 = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);
    
    //如果现在的状态为低电平  上次的状态为高电平 说明按键已经按下
    if(key_now_1== 0&&key_last_1 == 1&&flag == 1)
    {
        
    }
    
    if(key_now_2== 0&&key_last_2 == 1&&flag == 1)
    {
        
    }
    
    if(key_now_3== 0&&key_last_3 == 1)
    {
        
    }
    
    if(key_now_4== 0&&key_last_4 == 1)
    {
    }
    
    key_last_1 = key_now_1;
    key_last_2 = key_now_2;
    key_last_3 = key_now_3;
    key_last_4 = key_now_4;
}
相关推荐
KaifuZeng2 小时前
通信与接口协议面试问题汇总三
单片机·嵌入式硬件·面试·通信与接口协议
AI的探索之旅2 小时前
AI Agent辅助立创EDA设计——从原理图到PCB
人工智能·stm32·硬件工程
嵌入式-老费3 小时前
esp32开发与应用(从esp32到esp32s3)
嵌入式硬件
阿拉斯攀登3 小时前
无人售货柜设备开机自动注册逻辑:唯一标识绑定、防重复、批量铺货适配
嵌入式硬件·安卓·零售·安卓驱动·无人售货柜·无人售货机
振南的单片机世界4 小时前
单片机:一颗芯片包办CPU、内存、外设的“单芯片计算机”
arm开发·stm32·单片机·嵌入式硬件
科学熊4 小时前
Keil(C51)安装和注册机被系统拦截问题解决
嵌入式硬件
三品吉他手会点灯5 小时前
嵌入式机器学习 - 学习笔记1.1.2 - 机器学习的局限性与伦理
人工智能·笔记·嵌入式硬件·学习·机器学习
Dlrb12115 小时前
51单片机--GPIO、按键、中断、蜂鸣器、PWM
单片机·嵌入式硬件·51单片机·定时器·中断
鱼子星_5 小时前
【C++】类和对象(下)——初始化列表,类型转换,static成员,友元,内部类,匿名对象,编译器的优化拓展
c语言·c++·笔记
LuDvei15 小时前
STM32串行通信DMA的使用
stm32·单片机·嵌入式硬件