下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五按键输入实验实验目的:利用板载的4个按键,来控制板载的两个LED的亮灭和蜂鸣器的开关。通过本实验,将了解到STM32F1的IO口作为输入口的使用方法。内容要点.1.STM32IO口简介STM32F1的IO口在上一章巳经有了比较详细的介绍,这里我们不再多说。STM32F1的IO口做输入使用的时候,是通过调用函数GPIO_ReadInputDataBit()来读取IO口的状态的。了解了这点,就可以开始我们的代码编写了。这一个实验,我们将通过ALIENTEK战舰STM32开发板上载有的4个按钮(WK_UP、KEY0、KEY1和KEY2),来控制板上的2个LED(DS0和DS1)和蜂鸣器,其中WK_UP控制蜂鸣器,按一次叫,再按一次停;KEY2控制DS0,按一次亮,再按一次灭;KEY1控制DS1,效果同KEY2;KEY0则同时控制DS0和DS1,按一次,他们的状态就翻转一次。有源蜂鸣器自带了震荡电路,一通电就会发声2.硬件设计本实验用到的硬件资源有:指示灯DS0、DS14个按键:KEY0、KEY1、KEY2、和WK_UP。DS0、DS1以及蜂鸣器和STM32的连接在上两章都巳经分别介绍了,在战舰STM32开发)PE2 |kEY212PENKEY113)PE2 |kEY212PENKEY113PE4SEYO,PE2'TRACECKTSMCA23PE3TRACED0TSMC_A1。PE4TRACEDIFS\TC~A20KEY1连接在PE3上、KEY2连接在PE2上、WK_UP连接在PA0按键与STM32连接原理图这里需要注意的是:KEY0、KEY1和KEY2是低电平有效的,而WK_UP是高电平有效的,并且外部都没有上下拉电阻,所以,需要在STM32内部设置上下拉。3.软件设计key.h#ifndefKEYH#define__KEY_H#include"sys.h”#defineKEY0GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)〃读取按键0#defineKEY1GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)〃读取按键1#defineKEY2GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)〃读取按键2#defineWK_UPGPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)//读取按键3(WK_UP)#defineKEY0_PRES1//KEY0按下#defineKEY1_PRES2//KEY1按下#defineKEY2_PRES3//KEY2按下#defineWKUP_PRES4//WK_UP按下(即WK_UP/WK_UP)voidKEY_Init(void);//IO初始化u8KEY_Scan(u8);〃按键扫描函数#endif这段代码里面最关键就是4个宏定义:#defineKEY0GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)〃读取按键0#defineKEY1GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)〃读取按键1#defineKEY2GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)〃读取按键2#defineWK_UPGPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)〃读取按键3(WK_UP)然后我们打开USER文件夹Template.uvprojx,按新建按钮新建一个文件,然后保存在HARDWARE->BEEP文件夹下面,保存为key.G在该文件中输入如下代码:#include"stm32f10x.h”#include"key.h”#include"sys.h”#include"delay.h"voidKEY_Init(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;//KEY0-KEY2GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//设置成上拉输入GPIO_Init(GPIOE,&GPIO_InitStructure);//初始化PE4,PE3,PE2GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//设置成下拉输入GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化PA0}u8KEY_Scan(u8mode){staticu8key_up=1;if(mode)key_up=1;if(key_up&&(KEY0==0||KEY1==0)){delay_ms(10);key_up=0;if(KEY0==0)returnKEY0_PRES;elseif(KEY1==0)returnKEY1_PRES;}elseif(KEY0==1&&KEY1==1)key_up=1;return0;}led.h#ifndef__LED_H#define__LED_H#include"sys.h”#defineLED0PBout(5)#defineLED1PEout(5)voidLED_Init(void);#endifled.c#include"led.h"#include"stm32f10x.h”voidLED_Init(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB,GPIO_Pin_5);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitStructure);GPIO_SetBits(GPIOE,GPIO_Pin_5);}main.c#include"led.h”#include"delay.h"#include"key.h”#include"sys.h”intmain(void){vu8key=0;delay_init();LED_Init();KEY_Init();while(1){key=KEY_Scan(0);if(key){switch(key)caseKEY1_PRES:LED1=!LED1;break;caseKEY0_PRES:LED0=!LED0;LED1=!LED1;break;}elsedelay_ms(10);}}实验现象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年福建省人教版初中体育健康标准测试卷
- T/CMAM S7-2023三叶崖爬藤栽培技术规程
- 2026年社区自动体外除颤器使用护理试卷及答案
- 2026年胆固醇结石周围胆道病理考点试卷及答案
- 2026年工地易燃易爆品管控试题(含答案)
- 2026年国家中医执业助理医师中医营养学考试真题及答案
- 2026年环境影响评价工程师《环境影响评价技术导则与标准》考试真题(后附答案解析)
- 2026年江苏农业保险模拟试题(含答案)
- 2026年来宾市忻城县新圩乡卫生院公开招聘编外聘用人员模拟考试题(含答案)
- 2026年四川事业单位招聘考试综合类职业能力倾向测验模拟题试卷及答案
- 订单交付延迟原因解释函8篇
- 2026年宣传思想工作知识竞赛题库及答案
- 充电桩安装施工方案范文
- 全国港口与航道布局规划
- 管理类面试中的行为面试技巧与经验分享
- 2025年病历书写规范试题及答案
- 公司对实习生管理制度
- T/CECS 10201-2022丁基橡胶自粘防水卷材
- 弘扬长征精神主题班会课件
- 期末典例专练21:百分数与生活实际问题(折扣、成数、税率、利率)“综合版”(学生版+解析)-2024-2025学年六年级数学上册培优精练(北师大版)
- 童庆炳《文学概论》学习重点
评论
0/150
提交评论