今天做了一个io监测按键事件的小程序,但是在调试过程出现了下面的问题:
1.按下以后常亮
2.按下以后抬起会出现亮的现象
int value = 0;
gpio_t gpio;
gpio_init(&gpio, WIFI_KEY);
gpio_dir(&gpio, PIN_INPUT);
gpio_mode(&gpio, PullUp);
while(1){
if(!gpio_read(&gpio))
{//消抖
sys_msleep(10);
if(!gpio_read(&gpio))
{
do{
++value;
sys_msleep(20);
if((value % 50) == 0)
{
printf("input time is %d s\n", value/50);
}
}while(!gpio_read(&gpio));
}
}
if(value > 150)
{
printf("操作\n");
}
else
{
value = 0;
}
sys_msleep(50);
}