u8 KEY_Scan()
{
1 static u8 key1_up=1;//按键按松开标志
//第一行
Hang_00_L;//把第一行输出低电平
Hang_01_H;
Hang_02_H;
Hang_03_H;
if(key1_up&&Lie_00_V==0)
{
delayMs(jpys); //延时20秒,软件消抖
2 key1_up=0;
if(Lie_00_V==0) //如果第一列是低电平,说明有键被按下,如果没有直接退出if语句
{
return 16;
}
}else if(Lie_00_V==1)key1_up=1;
}
int main(void){
while(1)
{
3 A = KEY_Scan();
if(A != 0)
{
USART_SendData(DEBUG_USARTx,A);
printf("\r\n%d\r\n",A);
}
}
}
硬件调试的时候为什么我把按键按下不松开的时候第一次经过2那里后key1_up的值就一直为0,每次进入KEY_Scan()函数不都应该执行static u8 key1_up=1;赋值为1吗
而当我按下按键松开后,再次执行KEY_Scan()函数A就会变为1.为什么松开就可以重新赋值,不松开就不行 |