历史上的今天
今天是:2025年03月29日(星期六)
2019年03月29日 | 嵌入式-stm32学习:按键检测
2019-03-29 来源:eefocus
bsp_key.h
#ifndef __KEY_H
#define __KEY_H
#include "stm32f4xx.h"
//引脚定义
/*******************************************************/
#define KEY1_PIN GPIO_Pin_0 //GPIO引脚号
#define KEY1_GPIO_PORT GPIOA //GPIO端口A
#define KEY1_GPIO_CLK RCC_AHB1Periph_GPIOA //GPIO端口时钟
#define KEY2_PIN GPIO_Pin_13
#define KEY2_GPIO_PORT GPIOC
#define KEY2_GPIO_CLK RCC_AHB1Periph_GPIOC
/*******************************************************/
/** 按键标置宏,
* 按键按下高电平,KEY_ON=1,KEY_OFF=0,
* 按键按下低电平,KEY_ON=0,KEY_OFF=1
*/
#define KEY_ON 1
#define KEY_OFF 0
void Key_GPIO_Config(void); //定义KEY-GPIO初始化配置函数
uint8_t Key_Scan(GPIO_TypeDef* GPIOx,u16 GPIO_Pin); //按键按下检测
#endif /* __LED_H */
bsp_key.c
#include "./key/bsp_key.h"
/**
* 配置按键用到的IO口
*/
void Key_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/*开启按键GPIO口时钟*/
RCC_AHB1PeriphClockCmd(KEY1_GPIO_CLK|KEY2_GPIO_CLK,ENABLE);
/*选择按键GPIO引脚*/
GPIO_InitStructure.GPIO_Pin = KEY1_PIN;
/*设置GPIO引脚为输入模式*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
/*设置引脚不上拉也不下拉*/
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
/*使用上面配置的结构体GPIO_InitStructure初始化按键*/
GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure);
/*选择按键GPIO引脚*/
GPIO_InitStructure.GPIO_Pin = KEY2_PIN;
/*使用上面配置的结构体GPIO_InitStructure初始化按键*/
GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStructure);
}
/**
* @brief 检测是否有按键按下
* @param GPIOx:具体的端口(x=A,B...K)
* @param GPIO_PIN:具体的端口位(x=0...15)
* @retval 按键状态
* @arg KEY_ON:按键按下
* @arg KEY_OFF:按键没按下
*/
uint8_t Key_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin) //按下返回KEY_ON,没按返回KEY_OFF
{
/*检测是否有按键按下*/
if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON )
{
/*等待按键释放*/
while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON);
return KEY_ON;
}
else
return KEY_OFF;
}
/*********************************************END OF FILE**********************/
下一篇:stm32的KEY控制LED
史海拾趣
|
美国国家半导体出品的电路设计参考软件,配有国半芯片应用的原理图和简单说明,是设计电路中极好的参考 英文版+汉化(菜单)的,有兴趣的同仁下了瞧一瞧,或许很有用哦 解压后双击文件中的ENCYC.EXE就打开了^_^ … 查看全部问答> |
|
前提要素:执着的信念 对于绝大多数经销商而言,目前的国内智能家居市场还处于一个待发展的态势,自身企业的盈利水平尚未处于高位,眼见安防、布线、照明等成熟行业商家经营顺风顺水的同时,自然不可避免的流露出几分羡慕之情,但比 ...… 查看全部问答> |
|
急啊!单片机串口通信程序问题! 编译没有通过,还没找出原因,请高手指点一下。 是不是程序结构有问题!请高手指点哈。在此谢谢大家啦! /************************************************************************************************* ...… 查看全部问答> |
|
在定制wince5.0时,看了一些资料,有以下一段内容: (1)合并配置文件:所有的.BIB文件合并成CE.BIB。CE.BIB包含映像NK.BIN中的所有文件;所有.REG文件合并成REGINIT.INI;所有.DAT文件合并成INITOBJ.DAT;所有.DB文件合并成INITDB.INI。在修改配 ...… 查看全部问答> |
|
关于调用Windows XP Tablet PC中的手写输入问题 请教高手 TabletPC中的手写输入路径为: \\Program Files\\Common Files\\Microsoft Shared\\ink\\TabTip.exe 系统运行是, 有一小图标在任务条上, 只有点小图标才打开手写输入界面, 在vc中, 如何去让激活手写输入? 如: 当程序进入某一界面时自动将手写输 ...… 查看全部问答> |




