您的位置:首页 > 其它

stm32笔记:GPIO的的配置和操作(2)引脚输入之查询按键

2016-04-14 00:00 453 查看
摘要: GPIO的的配置和操作(2)引脚输入之查询按键

(1)将PB9管脚配置成输入模式



配置初始化代码

void KEY_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//输入模式时是不需要对输出速率进行配置的,及时配置也会被编译器忽略
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
简单粗暴的使用方法

if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9) == 0)  //检测USR键是否按下
{
Delay_ms(10);//延时
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==0)
{
while(GPIO_ReadInputBit(GPIOB,GPIO_Pin_9)==0);   GPIO_SetBits(GPIOC, GPIO_Pin_6);
} }
else
{

}

温柔的做法

#define KEY_ON  0
#define KEY_OFF 1

u8 Key_Scan(GPIO_TypeDef* GPIOx,u16 GPIO_Pin)
{
if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON)
{
Delay_ms(10);//延时
if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON)
{
while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON);//等待释放
return KEY_ON;
}
else
{
return KEY_OFF;
}
}
else return KEY_OFF;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  STM32 GPIO Read input