STM32HAL库编程——按键控制LED灯实验

本文介绍了如何使用HAL库在Keil5中操作GPIO,包括LED灯的初始化、上拉输入的按键控制。重点讲解了如何设计按键防抖功能以减少机械抖动对按键状态读取的影响,以及按键的初始状态设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

认识GPIO输入函数

HAL库操作

       初始化LED灯引脚PA0,高电平,推挽输出,无上拉下拉

       初始化按键引脚PA1,上拉输入

KEIL5代码编写

1.首先定义LED电平状态切换函数

2.再定义读取按键引脚电平状态函数

核心代码点

按键防抖功能设计

因为采用的说机械按键,所以会产生惯性抖动,如下图所示:

按下的前10ms和松开后的10ms内会产生机械抖动,为了消除抖动,那就让编译器避开抖动阶段。就是跳过前10ms和跳过后10ms,这样就可以避免按键状态的读取错误。

       同时添加延时读取函数,如果一直处在按下状态的话,就一直进入While循环。

按键的初始状态

因为采用的是上拉输入,就是说,如果按键没有按下的话,那就一直是高电平,如果按键按下,那就是低电平。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值