知识点:按键(控制变量改变)+LCD
定义变量
uint8_t key_val,key_up,key_down,key_old;
uint16_t X=2,Y=2,T;
char buf[21];
函数声明
uint8_t key_scan(void);
void key_proc(void);
void lcd_Proc(void);
按键
//按键扫描
uint8_t key_scan(void)
{
key_val=0;
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==GPIO_PIN_RESET)
{
key_val=2;
}
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==GPIO_PIN_RESET)
{
key_val=3;
}
return key_val;
}//按键执行
void key_proc(void)
{
key_val=key_scan();
key_down=key_val&(key_val^key_old);
key_up=~key_val&(key_val^key_old);
key_old=key_val;
if(key_down==2)
{
X++;
if(X==51)
{X=1;
}
}
if(key_down==3)
{Y++;
if(Y==21)
{
Y=1;
}
}
}
显示
void lcd_Proc(void)
{T=X*Y;
LCD_DisplayStringLine(Line2,(uint8_t*)" DATA ");
sprintf(buf," X:%d ",X);
LCD_DisplayStringLine(Line3,(uint8_t*)buf);
sprintf(buf," Y:%d ",Y);
LCD_DisplayStringLine(Line4,(uint8_t*)buf);
sprintf(buf," T:%d ",T);
LCD_DisplayStringLine(Line5,(uint8_t*)buf);}