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;
}
相关推荐
aaaameliaaa1 小时前
字符函数和字符串函数
c语言·笔记·算法
夜月yeyue1 小时前
AUTOSAR CP 从上电到 Runnable
c语言·网络·tcp/ip·车载系统
白白白小纯3 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
小羊先生car3 小时前
RTOS-F429-HAL-绝对延时和相对延时(2026/7/31)
c语言·rtos
老k一步步来7 小时前
STM32 HAL库CAN通信核心函数详解,参数以及作用
stm32·单片机·嵌入式硬件
gwf2167 小时前
SSD读写速度深度解析:顺序读写vs随机读写、IOPS、延迟,你的硬盘性能到底怎么看?
git·嵌入式硬件·缓存·github·智能硬件
caishenzhibiao7 小时前
期货先行者主图 同花顺期货通指标
java·c语言·c#
NoteStream10 小时前
【c语言基础】C语言常见概念
c语言·开发语言·编辑器
caishenzhibiao10 小时前
先行者副图 同花顺期货通指标
java·c语言·c#
Freak嵌入式10 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则