(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;
}