单片机基础——使用GPIO扫描检测按键

栏目: IT技术 · 发布时间: 5年前

内容简介:开发板首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接。

1. 准备工作

硬件准备

开发板

首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接。

单片机基础——使用GPIO扫描检测按键

软件准备

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

2.生成MDK工程

选择芯片型号

打开STM32CubeMX,打开MCU选择器:

单片机基础——使用GPIO扫描检测按键

搜索并选中芯片 STM32L431RCT6 :

单片机基础——使用GPIO扫描检测按键

配置时钟源

  • 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;
  • 如果使用默认内部时钟(HSI),这一步可以略过;

这里我都使用外部时钟:

单片机基础——使用GPIO扫描检测按键

配置LED的GPIO引脚

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

单片机基础——使用GPIO扫描检测按键

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

单片机基础——使用GPIO扫描检测按键

设置用户标签为LED:

单片机基础——使用GPIO扫描检测按键

配置按键的GPIO引脚

查看原理图,确定控制按键引脚,这里我们的F1按键接的是PB2,F2按键接的是PB3。

单片机基础——使用GPIO扫描检测按键

所以接下来我们选择配置 PB2 引脚和 PB3 引脚:

单片机基础——使用GPIO扫描检测按键

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

单片机基础——使用GPIO扫描检测按键

配置时钟树

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

单片机基础——使用GPIO扫描检测按键

生成工程设置

单片机基础——使用GPIO扫描检测按键

代码生成设置

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

单片机基础——使用GPIO扫描检测按键

生成代码

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

单片机基础——使用GPIO扫描检测按键

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

编写用户代码

打开MDK工程,在main.c中的main函数中编写简单的用户代码,这里的代码意思为:一直循环读取按键引脚的电平,当读取到F1按键引脚为低电平时,LED灯引脚输出高电平;当读取到F2按键引脚为低电平时,LED灯引脚输出低电平,所以当按下KEY1,LED点亮,按下KEY2,LED熄灭。

 1 int main(void)
 2 {
 3 
 4   HAL_Init();
 5 
 6   SystemClock_Config();
 7 
 8   MX_GPIO_Init();
 9 
10   while (1)
11   {
12     /* USER CODE BEGIN 3 */
13         if(0 == HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin))
14         {
15             HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);
16         }
17         if(0 == HAL_GPIO_ReadPin(KEY2_GPIO_Port, KEY2_Pin))
18         {
19             HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);
20         }
21   }
22   /* USER CODE END 3 */
23 }

编译代码

点击如图所示的按钮编译工程

单片机基础——使用GPIO扫描检测按键

编译成功

单片机基础——使用GPIO扫描检测按键

设置下载器

点击如图所示按钮打开设置页面

单片机基础——使用GPIO扫描检测按键

进行下载设置,选择“ST-Link Debugger”,并点击“Settings”。

单片机基础——使用GPIO扫描检测按键

在“Flash Download”菜单下勾选“Reset and Run”选项,已达到烧录程序后单片机自动复位并运行程序的目的。

单片机基础——使用GPIO扫描检测按键

下载运行

点击"LOAD"按钮即可烧录代码到单片机中。

单片机基础——使用GPIO扫描检测按键

烧录成功

单片机基础——使用GPIO扫描检测按键

实验现象

下载运行后,实验现象如下:

  • 上电复位时LED处于熄灭状态;
  • 按下KEY1,LED点亮;
  • 按下KEY2,LED熄灭;

单片机基础——使用GPIO扫描检测按键

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ethnography and Virtual Worlds

Ethnography and Virtual Worlds

Tom Boellstorff、Bonnie Nardi、Celia Pearce、T. L. Taylor / Princeton University Press / 2012-9-16 / GBP 21.00

"Ethnography and Virtual Worlds" is the only book of its kind - a concise, comprehensive, and practical guide for students, teachers, designers, and scholars interested in using ethnographic methods t......一起来看看 《Ethnography and Virtual Worlds》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具