在GPIO.H里声明KEY_Read函数:
uint8_t KEY_Read(void); /*按键读取*/
在GPIO.C里编写KEY_Read函数:
/* USER CODE BEGIN 2 */
uint8_t KEY_Read(void) /*按键读取*/
{
uint8_t ucKey_Val=0;
if( HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==0 )
{
HAL_Delay (10); /*延迟10ms消抖*/
if( HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==0 )
ucKey_Val=1; /*赋值键值1*/
}
if( HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==0 )
{
HAL_Delay (10); /*延迟10ms消抖*/
if( HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==0 )
ucKey_Val=2; /*赋值键值2*/
}
if( HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==0 )
{
HAL_Delay (10); /*延迟10ms消抖*/
if( HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==0 )
ucKey_Val=3; /*赋值键值3*/
}
if( HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==0 )
{
HAL_Delay (10); /*延迟10ms消抖*/
if( HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==0 )
ucKey_Val=4; /*赋值键值4*/
}
return ucKey_Val; /*返回键值*/
}
在main.c:
1.在主函数前声明 KEY_Proc()按键处理函数;
void KEY_Proc(void ); /*按键处理*/
2.在while循环里声明 KEY_Proc()按键处理函数;
KEY_Proc( );
3.在void SystemClock_Config(void)函数后边编写KEY_Proc()按键处理函数。
void KEY_Proc(void)
{
uint8_t ucKey_Val=0;
ucKey_Val=KEY_Read();
char text1[30];
switch(ucKey_Val)
{
case 1:
sprintf(text1,"ccpig ");
LCD_DisplayStringLine(Line8, (uint8_t *)text1);
break;
case 2:
sprintf(text1,"jjLOVEcc");
LCD_DisplayStringLine(Line8, (uint8_t *)text1);
break;
case 3:
sprintf(text1,"cc ");
LCD_DisplayStringLine(Line8, (uint8_t *)text1);
break;
case 4:
sprintf(text1,"jj ");
LCD_DisplayStringLine(Line8, (uint8_t *)text1);
break;
}
}