在key.c文件中进行按键初始化和轮询查询方式
void key_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd ( userkey_GPIO_CLK, ENABLE);
GPIO_InitStructure.GPIO_Pin = userkey_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //输入模式
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //不上拉也不下拉
GPIO_Init(userkey_GPIO_PORT, &GPIO_InitStructure);
}
u8 key_scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
{
if (GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON ) //检测是否有按键按下
{
while (GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON); //等待按键释放
return KEY_ON;
}
else
return KEY_OFF;
}
|