蓝桥杯STM32G431RBT6_HAL库按键程序设计

本文详细介绍了如何在STM32CubeMX中设置PB0、PB1、PB2、PA0按键为输入模式,并通过HAL库实现按键扫描和LED灯控制。包括创建BSP文件、初始化代码移植、编写按键扫描函数和按键处理函数,以及使用滴答值定时器的使用方法。

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

在stm32cubeMX里进行按键初始化配置

1.先把上一讲的HAL_01_LED_TEST复制一份并重命名为HAL_02_KEY_TEST

2.用stm32cubeMX打开源HAL_00_SOURCE并配置按键需要用到的引脚(如下图所示)

3.配置PB0、PB1、PB2、PA0为输入模式不带上下拉(浮空输入)配置好后生成代码

在keil里编写函数实现功能

1.在src和inc的BSP文件夹里新建key文件夹,在key文件夹里分别存放bsp_key.c和bsp_key.h

2.打开HAL_02_KEY_TEST,在三个小方块里的BSP中添加bsp_key.c

3.在main.c中声明bsp_key.h头文件,这样我们就可以在主函数中调用bsp_key.c里的函数并编写代码

4.在bsp_key.c中声明.h头文件,

在bsp_key.h里声明main.h这样就可以调用HAL库函数

5.移植源里的初始化代码到HAL_02_KEY_TEST,进行按键引脚的初始化

6.在main.c主函数中调用初始化代码完成按键引脚的初始化

7.在bsp_key.c中编写按键扫描函数来判断我们按下的是哪个按键并返回unkey_Val(只有五种情况0,1,2,3,4)

8.编写 key_proc() 按键处理函数(我们让他200ms执行一次,不要一进去函数就执行),需要用到滴答值uwTick(这个值从给单片机上电开始是一直不断增加的,每一毫米+1)

9.找到滴答值专用数据类型 __IO uint32_t ,定义打点值uwTick_Set_Point并初始化为0,再定义四个按键扫描专用变量

10.编写函数(每200ms才会进入一次key_proc() )

编写按键专用三行代码,对应哪个按下哪个按键哪个led灯亮

情况说明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值