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;
}
相关推荐
Rocktech_ruixun4 小时前
机器人本地跑LLM大模型对主板硬件有什么要求?瑞迅科技RK3588/3568方案选型解析
人工智能·科技·嵌入式硬件·机器人·边缘计算
天空'之城6 小时前
单片机基础核心知识点汇总(三十四)
单片机·嵌入式硬件
Horn Still Sounds7 小时前
51单片机入门:硬件基础、位运算、数码管动态显示完整梳理
嵌入式硬件·mongodb·51单片机
繁星蓝雨7 小时前
C++的设计与演进大纲(如何从C语言一步步成长为C++)
c语言·开发语言·c++·c++历史·c++演进
yutian06067 小时前
C: Unix UTC 时间戳转为 UTC+8 北京时间
c语言·unix
三佛科技-187366133978 小时前
24W-48W隔离双绕组非标自供电芯片LP3718CD(电路原理图)
单片机·嵌入式硬件
糖糖单片机设计10 小时前
基于 STM32 的小型鸟类宠物繁殖系统
stm32·嵌入式硬件·宠物
彧azz10 小时前
数据结构:关于图的学习
c语言·数据结构·笔记·学习·算法
彧azz11 小时前
二叉搜索树学习记录
c语言·数据结构·笔记·算法
电子元器件选型哥11 小时前
一文讲清LLC谐振电路工作原理
单片机·嵌入式硬件·硬件工程师·电子元器件·器件选型