教学课件 6-按键检测库函数_第1页
教学课件 6-按键检测库函数_第2页
教学课件 6-按键检测库函数_第3页
教学课件 6-按键检测库函数_第4页
教学课件 6-按键检测库函数_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目二按键检测系统设计任务2按键检测(库函数)项目二按键检测系统设计任务1任务2按键检测(寄存器)按键检测(库函数)知识目标:1.会搭建STM32固件库开发环境;2.会相关库函数的使用方法。技能目标:1.会使用库函数实现按键检测功能;2.会按键检测系统程序设计和调试。素养目标:1.操作规范,符合5S管理要求;2.具备自主探究、勤学好问的态度。学习目标设计要求利用STM32控制按键KEY0,要求:按下按键LED0灯点亮,松开按键LED0灯熄灭,设计硬件电路、编写控制程序并进行系统调试。硬件设计硬件连接:

知识导航按键简介按键有时也称按钮或开关,它是控制系统中常用的外部设备之一,也是最简单的数字量输入设备,常见的按键设备如图所示。键盘是由若干个规则排列的按键组成,如手机键盘和计算机键盘等,不同的按键代表着不同的含义(一般来说,按键的含义可通过软件定义)。用户通过按动按键,输入数据或命令,实现简单的人机交互。知识导航MDK固件库1、函数RCC_APB2PeriphClockCmdvoidRCC_APB2PeriphClockCmd(u32RCC_APB2Periph,FunctionalStateNewState);参数1:

APB2外设时钟,可以取下表的一个或者多个取值的组合作为该参数的值。参数2:可以取ENABLE或者DISABLE。知识导航RCC_APB2Periph值知识导航示例:若要使能GPIOA,GPIOBandSPI1时钟,可以进行如下操作RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_SPI1,ENABLE);知识导航MDK固件库2、GPIO初始化函数voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct);函数的入口参数是GPIO_TypeDef类型指针和GPIO_InitTypeDef类型指针。参数1:GPIOA--GPIOG。知识导航stm32f10x_gpio.h中GPIO_InitTypeDef的定义:typedefstruct{uint16_tGPIO_Pin;GPIOSpeed_TypeDefGPIO_Speed;GPIOMode_TypeDefGPIO_Mode;GPIOMode_TypeDef*/}GPIO_InitTypeDef;这个结构体有3个成员变量,一个GPIO口的状态是由速度(Speed)和模式(Mode)来决定的。知识导航初始化GPIO(初始化GPIO_InitTypeDef类型的结构体):方法:GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);知识导航GPIO_Pin值:该参数选择待设置的GPIO管脚,使用操作符“|”可以一次选中多个管脚。知识导航GPIO_Speed值:用以设置选中管脚的速率。知识导航GPIO_Mode值:用以设置选中管脚的工作状态。知识导航示例:将PB5、PE5引脚设为推挽输出,输出速度为50MHz。GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE,ENABLE); //使能PB、PE端口时钟

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);//根据设定参数初始化PB5

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5; GPIO_Init(GPIOE,&GPIO_InitStructure);//根据设定参数初始化PE5知识导航3、函数GPIO_ReadInputDataBit在固件库中操作IDR寄存器读取IO端口数据可通过该函数实现。u8GPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,u16GPIO_Pin);参数1:GPIOA--GPIOG。参数2:待读取的端口位。举例:u8ReadValue;ReadValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7);知识导航4、函数GPIO_ReadInputData在固件库中操作IDR寄存器读取IO端口数据可通过该函数实现。u16GPIO_ReadInputData(GPIO_TypeDef*GPIOx);参数:GPIOA--GPIOG。举例:u16ReadValue;ReadValue=GPIO_ReadInputData(GPIOC);知识导航5、函数GPIO_Write在固件库中设置ODR寄存器的值来控制IO口的输出状态可通过通过该函数实现的。voidGPIO_Write(GPIO_TypeDef*GPIOx,u16PortVal);参数1:GPIOA--GPIOG。参数2:待写入端口数据寄存器的值。举例:GPIO_Write(GPIOA,0x1101);知识导航6、函数GPIO_SetBits和GPIO_ResetBits在STM32固件库中,通过BSRR和BRR寄存器设置GPIO端口输出是通过函数GPIO_SetBits()和函数GPIO_ResetBits()来完成的。voidGPIO_SetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);voidGPIO_ResetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);参数1:GPIOA--GPIOG。参数2:待设置或清除的端口位。知识导航6、函数GPIO_SetBits和GPIO_ResetBits例如:要设置GPIOB.5输出1,那么方法为:GPIO_SetBits(GPIOB,GPIO_Pin_5);反之要设置GPIOB.5输出位0,方法为:GPIO_ResetBits(GPIOB,GPIO_Pin_5);知识导航端口位设置端口位设置/清除寄存器(GPIOx_BSRR)知识导航端口位清除寄存器端口位清除寄存器(GPIOx_BRR)知识导航系统时钟初始化函数SystemInit初始化之后的状态:SYSCLK72MHzAHB72MHzPCLK136MHzPCLK272MHzPLL72MHz任务实现使能IO口时钟

调用函数为RCC_APB2PeriphClockCmd()。

初始化IO口模式

调用函数GPIO_Init();

按键扫描判断按键是否按下(库函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论