STM32开发板按键控制实验

文章来源:计算机系发布时间:2020-06-15浏览次数:479

芯片:STM32F407ZG76

1MB flash

 

安装keil5

创建库函数模板

【1】 创建存放库函数模板的文件夹。名称:库函数模板

【2】 在库函数模板文件夹中创建文件夹User,存放用户程序

【3】 创建文件夹Obj

【4】 创建文件夹Libraries

【5】 Libraries下创建文件夹CMSIS

【6】 复制STM32F4xx驱动到Libraries

实验说明

通过按键控制LED灯的开关

实验环境

硬件

STM32F407-PZ6808L开发

STM32仿真

软件

Winddows7 64操作系统 内存8GB

Keil5

安装后需要添加Keil.STM32F4xx_DFP.2.7.0.pack

Stm32CubeMx

安装后将STM32Cube_FW_F4_V1.13.0文件夹复制到C: \ Users \ Administrator \ STM32Cube \ Repository文件夹

文档

STM32F407-PZ6808L开发板原理图.pdf

实验现象

开发板上的K_RIGHT键D2亮,按K_DOWN键D2灯灭。

实验步骤

1. 打开STM32F407-PZ6808L开发原理图

找到LED灯模块

 

2链接引脚LED2

LED2 低电平灯亮 高电平灯灭

找到LED2 在STM32F407ZGT6核心板的链接引脚

PDF阅读器上搜索


找到LED2引脚


引脚PF10


 

查找按键K_RIGHT和K_DOWN在核心板上的引脚

查找按键模块

分别对应K1K2

然后在核心板上查找K1和K2的引脚名称

 

 

名称PE2和PE3

 

分析

按下K1则D2灯亮,按下K2则D2灯灭。

K1K2按下后,引脚是低电平判断PE2PE3引脚的信号来确定K1K2是否按下若为低电平,在为按下,若为高电平,则为放开。

 

PE2和PE2引脚为输入类型。

PF10引脚为输出类型

 

2. 打开STM32CubeMX建立工程

(1) 置类型STM32F407ZGTx LQFP144

(2) 设置引脚类型

Peripherals->SYS->Debug设置为Serial Wire(仿真使用)

注意:一定设置,否则以后不能使用仿真器。

 


找到PF10,由于是控制LED灯,设置为输出类型(GPIO_Output),同理,设置PE2和PE3类型,为GPIO_Input


(3) PE2PE3mode进行设置

依次选择Configuration——GPIO 


 

GPIO Pull-up/Pull-down设置Pull-up

4)设置工程

Project Settings->Project Name设置为KEY

 

Toolchain /IDE 设置为MDK-ARM V5

 

通过向导,自动生成初始化代码,然后通过Keil5打开工程

 

3. 先编译工程

main.c中添加代码

uint8_t Check_Key()

{

if(HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_2)==GPIO_PIN_RESET || HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_3)==GPIO_PIN_RESET)

{

HAL_Delay(10);

if(HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_2)==GPIO_PIN_RESET)

{

return 1;

}

if(HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_3)==GPIO_PIN_RESET)

{

return 2;

}

  

}

return 0;

}

 

 

main函数

uint8_t key;

 

key=Check_Key();

switch(key)

{

case 1:

HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET);

break;

case 2:

HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET);

break;

}

编译

 

4. 链接仿真器仿真调试

 

然后按开发板上的复位键测试。

实验文档.docx