按键输入实验-STM32F4开发

按键输入实验-STM32F4开发

ID:44180510

大小:573.34 KB

页数:5页

时间:2019-10-19

按键输入实验-STM32F4开发_第1页
按键输入实验-STM32F4开发_第2页
按键输入实验-STM32F4开发_第3页
按键输入实验-STM32F4开发_第4页
按键输入实验-STM32F4开发_第5页
资源描述:

《按键输入实验-STM32F4开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、STM32F4开发指南(库函数版)ALIENTEK探索者STM32F407开发板教程第八章按键输入实验上两章,我们介绍了STM32F4的IO口作为输出的使用,这一章,我们将向大家介绍如何使用STM32F4的IO口作为输入用。在本章中,我们将利用板载的4个按键,来控制板载的两个LED的亮灭。通过本章的学习,你将了解到STM32F4的IO口作为输入口的使用方法。本章分为如下几个小节:8.1STM32F4IO口简介8.2硬件设计8.3软件设计8.4下载验证8.1STM32F4IO口简介STM32F4的IO口在上两章已经有了比较详细的介绍,这里我们不再多

2、说。STM32F4的IO口做输入使用的时候,是通过调用函数GPIO_ReadInputDataBit()来读取IO口的状态的。了解了这点,就可以开始我们的代码编写了。这一章,我们将通过ALIENTEK探索者STM32F4开发板上载有的4个按钮(KEY_UP、KEY0、KEY1和KEY2),来控制板上的2个LED(DS0和DS1)和蜂鸣器,其中KEY_UP控制蜂鸣器,按一次叫,再按一次停;KEY2控制DS0,按一次亮,再按一次灭;KEY1控制DS1,效果同KEY2;KEY0则同时控制DS0和DS1,按一次,他们的状态就翻转一次。8.2硬件设计本实验

3、用到的硬件资源有:1)指示灯DS0、DS12)蜂鸣器3)4个按键:KEY0、KEY1、KEY2、和KEY_UP。DS0、DS1以及蜂鸣器和STM32F4的连接在上两章都已经分别介绍了,在探索者STM32F4开发板上的按键KEY0连接在PE4上、KEY1连接在PE3上、KEY2连接在PE2上、KEY_UP连接在PA0上。如图8.2.1所示:图8.2.1按键与STM32F4连接原理图这里需要注意的是:KEY0、KEY1和KEY2是低电平有效的,而KEY_UP是高电平有效的,并且外部都没有上下拉电阻,所以,需要在STM32F4内部设置上下拉。8.3软件

4、设计从这章开始,我们的软件设计主要是通过直接打开我们光盘的实验工程,而不再讲解怎么加入文件和头文件目录。工程中添加相关文件的方法在我们前面两个实验已经讲解非常详细。169STM32F4开发指南(库函数版)ALIENTEK探索者STM32F407开发板教程打开我们的按键实验工程可以看到,我们引入了key.c文件以及头文件key.h。下面我们首先打开key.c文件,关键代码如下:#include"key.h"#include"delay.h"//按键初始化函数voidKEY_Init(void){GPIO_InitTypeDefGPIO_InitSt

5、ructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA

6、RCC_AHB1Periph_GPIOE,ENABLE);//使能GPIOA,GPIOE时钟GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2

7、GPIO_Pin_3

8、GPIO_Pin_4;//KEY0KEY1KEY2对应引脚GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;//普通输入模式GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;/

9、/100MGPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;//上拉GPIO_Init(GPIOE,&GPIO_InitStructure);//初始化GPIOE2,3,4GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//WK_UP对应引脚PA0GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_DOWN;//下拉GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIOA0}//按键处理函数//返回按键值//mode:0

10、,不支持连续按;1,支持连续按;//0,没有任何按键按下//1,KEY0按下2,KEY1按下3,KEY2按下4,WKUP按下WK_UP//注意此函数有响应优先级,KEY0>KEY1>KEY2>WK_UP!!u8KEY_Scan(u8mode){staticu8key_up=1;//按键按松开标志if(mode)key_up=1;//支持连按if(key_up&&(KEY0==0

11、

12、KEY1==0

13、

14、KEY2==0

15、

16、WK_UP==1)){delay_ms(10);//去抖动key_up=0;if(KEY0==0)return1;elseif(KE

17、Y1==0)return2;elseif(KEY2==0)return3;elseif(WK_UP==1)return4;}elseif

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。