单片机基础——使用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使用外部中断检测按键。


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

查看所有标签

猜你喜欢:

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

Pattern Recognition and Machine Learning

Pattern Recognition and Machine Learning

Christopher Bishop / Springer / 2007-10-1 / USD 94.95

The dramatic growth in practical applications for machine learning over the last ten years has been accompanied by many important developments in the underlying algorithms and techniques. For example,......一起来看看 《Pattern Recognition and Machine Learning》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试