main()
{
unsigned int tem_c=0;
unsigned char B_k1=0,B_k2=0;
for(tem_c=0;
tem_c<50000;tem_c++);
Clock_init();
GPIO_int();
while (1)
{
if((GPIOG->IDR&0x80)==0x80)B_k1=0; //PG7为高电平,未有按键
else if(B_k1==0)//PG6按下时,指示灯亮
{
for(tem_c=0;
tem_c<500;tem_c++);
if((GPIOG->IDR&0x80)==0x00)
{
B_k1=1;
GPIOA->ODR=0x30;
}
}
if((GPIOG->IDR&0x40)==0x40)B_k2=0; //PG6为高电平,未有按键
else if(B_k2==0)//PG7按下时,指示灯灭
{
for(tem_c=0;
tem_c<500;tem_c++);
if((GPIOG->IDR&0x40)==0x00)
{
B_k2=1;
GPIOA->ODR=0x0;
}
}
}
}
此帖出自
小平头技术问答
B_k1=0, B_k2=0;这两项呢 什么意思呢?
这两个是存储按键的状态,是按下还是未按下。
按键扫描的话,一般先判断有键按下,延时一段时间再判断一次,两次都是按下才真的算按下,这个叫消抖。
一周热门 更多>