【STM32Cube_04】使用GPIO进行按键检测

发布者:深沉思考最新更新时间:2021-07-20 来源: eefocus关键字:STM32Cube  GPIO  按键检测 手机看文章 扫描二维码
随时随地手机看文章

1. 准备工作

硬件准备

首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):
在这里插入图片描述

软件准备

需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码。

2.生成MDK工程 — 初始化GPIO为输入

选择芯片型号

打开STM32CubeMX,打开MCU选择器:

搜索并选中芯片STM32L431RCT6:

配置时钟源

  • 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;

  • 如果使用默认内部时钟(HSI),这一步可以略过;

这里我都使用外部时钟:

配置LED的GPIO引脚

查看小熊派开发板的原理图,如下:

mark

所以接下来我们选择配置PC13引脚:

mark
设置用户标签为LED:

mark

配置按键的GPIO引脚

在原理图上如下:
=
所以接下来我们选择配置PB2引脚和PB3引脚:

因为没有设置硬件上拉,所以我们配置开启上拉电阻,并设置用户标签为KEY1和KEY2:
mark

配置时钟树

STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可:

生成工程设置

代码生成设置

最后设置生成独立的初始化文件:

生成代码

点击GENERATE CODE即可生成MDK-V5工程:

3. 在MDK中编写、编译、下载用户代码

在main.c中的main函数中编写简单的用户代码:

int main(void)
{

HAL_Init();

SystemClock_Config();

MX_GPIO_Init();

while (1)
{
/* USER CODE BEGIN 3 */
if(0 == HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin))
{
HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);
}
if(0 == HAL_GPIO_ReadPin(KEY2_GPIO_Port, KEY2_Pin))
{
HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);
}
}
/* USER CODE END 3 */
}

然后编译整个工程:

最后进行下载设置:


最后点击下载即可:

实验现象如下:

  • 上电复位时LED处于熄灭状态;

  • 按下KEY1,LED点亮;

  • 按下KEY2,LED熄灭;

    至此,我们已经学会了如何使用STM32CubeMX快速生成MDK的工程,以及如何使用 STM32CubeMX初始化GPIO进行按键检测,下一节讲述如何配置NVIC使用外部中断检测按键。


关键字:STM32Cube  GPIO  按键检测 引用地址:【STM32Cube_04】使用GPIO进行按键检测

上一篇:【STM32Cube_03】使用GPIO点亮一个LED
下一篇:【STM32Cube_06】使用USART发送和接收数据(查询模式)

推荐阅读最新更新时间:2024-10-20 16:41

stm32mp1 Cortex M4开发篇3:使用GPIO扫描检测按键
写在前面: 本文章为《ARM Cortex-M4裸机开发篇》系列中的一篇,,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板),Cortex-M4裸机开发篇除了讲M4裸机开发外,还会讲解通过M4控制资源扩展板上的各种传感器执行器模块(包括空气温湿度传感器、LED灯、数码管、蜂鸣器、震动马达、按键中断、风扇等),本篇是M4控制资源扩展板中的一篇。 资源扩展板是FS-MP1A开发板的扩展模块,主要包含了10余种助主流传感器、执行器件、总线控制器件,非常方便项目扩展用。可拓展开发智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境检测等方向的10个左右综合项目,华清远见开发板也将配套提
[单片机]
stm32mp1 Cortex M4开发篇3:使用<font color='red'>GPIO</font>扫描<font color='red'>检测</font><font color='red'>按键</font>
STM32的GPIO 输入—按键检测
硬件设计 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生图1 中的带波纹信号,需要用软件消抖处理滤波,不方便输入检测。本实验板连接的按键带硬件消抖功能,见图2,它利用电容充放电的延时,消除了波纹,从而简化软件的处理,软件只需要直接检测引脚的电平即可。 图1 按键抖动说明图 图2 按键原理图 从按键的原理图可知,这些按键在没有被按下的时候,GPIO引脚的输入状态为低电平(按键所在的电路不通,引脚接地),当按键按下时,GPIO 引脚的输入状态为高电平(按键所在的电路导通,引脚接到电源)。只要我们检测引脚的输入电平,即可判断按键是否被按下。 若您使用的实验板
[单片机]
STM32的<font color='red'>GPIO</font> 输入—<font color='red'>按键</font><font color='red'>检测</font>
GPIO输出——固件库点LED GPIO输入——按键检测
GPIO输出—固件库点亮LED灯 点亮led灯的原理:LED的阳极接高电平,阴极接IO口。要LED灯亮就要形成闭合回路,IO口接入低电平就能形成闭合回路,点亮LED 一个led驱动的三大功能: LED亮 LED灭 LED翻转 新建led.c led.h 两个文件存放GPIO初始化函数 (加入工程后记得添加路径!!!) 编写头文件格式:(这样写是为了防止重复定义) #ifndef __LED__H #define __LED__H #endif 在头文件中写宏定义 宏定义是为了方便移植和方便自己有一些很繁琐的变量不用多次去写不易出错 如何寻找固件库的函数: 首先需要用到什么样的函数就去哪里找,例如用到R
[单片机]
<font color='red'>GPIO</font>输出——固件库点LED <font color='red'>GPIO</font>输入——<font color='red'>按键</font><font color='red'>检测</font>
【STM32】GPIO输入—按键检测
2.1硬件设计 弹性按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一 下子断开,使用按键时会产生如图带波纹信号,需要用软件消抖处理滤波,不方便输入检测。当然有专用的去抖电路,也有专用的去抖芯片,但通常我们用软件延时的方法就能解决抖动问题,没有必要添加多余的硬件电路。 2.2软件设计 同 LED 的工程,为了使工程更加有条理,我们把按键相关的代码独立分开存储,方便 以后移植。在“工程模板”之上新建“bsp_key.c”及“bsp_key.h”文件,这些文件也可根 据您的喜好命名,这些文件不属于 STM32标准库的内容,是由我们自己根据应用需要编写 的。 2.2.1编程要点 使能 GPIO端口时钟;
[单片机]
【STM32】<font color='red'>GPIO</font>输入—<font color='red'>按键</font><font color='red'>检测</font>
stm32专题二:GPIO输入—按键检测
新建板级支持包bsp_key.c和bsp_key.h GPIO输入配置过程: 定义初始化结构体; 开启RCC时钟,非常重要; 写入引脚和模式配置,不需要配置速度; 调用初始化函数,将初始化结构体写入对应的GPIO端口。 bsp_key.c包含两个函数,一个是初始化函数,另一个是按键扫描函数,会按键被按下时,返回按键的状态。 bsp_key.c #include bsp_key.h /** * @brief 按键初始化函数 */ void KEY_GPIO_Config(void) { // 定义GPIO初始化结构体 GPIO_InitTypeDef GPIO_InitStruct; // 开
[单片机]
【STM32Cube_04】使用GPIO进行按键检测
1. 准备工作 硬件准备 首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi): 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码。 2.生成MDK工程 — 初始化GPIO为输入 选择芯片型号 打开STM32CubeMX,打开MCU选择器: 搜索并选中芯片STM32L431RCT6: 配置时钟源 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC; 如果使用默认内部时钟(HSI),这一步可以略过; 这里我都使用外部时钟: 配置LED的GPIO引脚 查看小熊派开发板的原理图,如下: 所以接下来我们选择配置PC13引脚:
[单片机]
【STM32Cube_04】使用<font color='red'>GPIO</font>进行<font color='red'>按键</font><font color='red'>检测</font>
S3C2440-裸机篇-03 | GPIO的使用(点亮LED、按键检测
实验1 —— 点亮一个LED 1.看原理图确定硬件如何连接 原理图中表示了芯片控制LED的硬件电路以及芯片的引脚与LED如何连接。 2. 看主芯片手册确定如何控制引脚 具体:如何让GPF4输出高低电平? 2.1.配置GPF4为输出模式(GPFCON) 设置GPFCON寄存器的第 位=0b01。 2.2.配置GPF4输出高/低电平(GPFDAT) GPFDAT的第4位为0-低电平,1-高电平。(注:corresponding,相应的) 3.汇编程序访问寄存器控制LED 3.1.编辑程序 @ brief: 点亮连接在GPF4的LED @ author: mculover666 @ date: 2
[单片机]
S3C2440-裸机篇-03 | <font color='red'>GPIO</font>的使用(点亮LED、<font color='red'>按键</font><font color='red'>检测</font>)
再造STM32---第十部分:GPIO输入—按键检测
本章参考资料:《STM32F4xx 参考手册》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。 按键检测使用到 GPIO 外设的基本输入功能,本章中不再赘述 GPIO 外设的概念,如您忘记了,可重读前面“GPIO 框图剖析”小节, STM32 标准库中 GPIO 初始化结构体GPIO_TypeDef 的定义与“定义引脚模式的枚举类型”小节中讲解的相同。 10.1 硬件设计: 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生图 10-1 中的带波纹信号,需要用软件消抖处理滤波,不方便输入检测。本实验板连接的按键带硬件消
[单片机]
再造STM32---第十部分:<font color='red'>GPIO</font>输入—<font color='red'>按键</font><font color='red'>检测</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved