main函数
uint8_t uckey;
GPIO中的函数,读取按键(单击)
uint8_t key_read(void)
{
uint8_t key_value=0;
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==0)
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==0)
key_value=1;
}
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==0)
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==0)
key_value=2;
}
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==0)
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==0)
key_value=3;
}
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==0)
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==0)
key_value=4;
}
return(key_value);
}
main.c中函数
void key_proc(void); /* 按键处理 */
按键功能函数
void key_proc()
{
uint8_t key;
key = key_read();
if((key != uckey)) //保证不重复进行
uckey = key; //保证不重复进行
else //保证不重复进行
key = 0; //保证不重复进行
switch(key)
{
case 1:
break ;
case 2:
break ;
case 3:
break ;
case 4:
break ;
}
}
双击
启用定时器,定时10ms
在这里插入代码片