修改这个函数,要实现防止连续点按 while (1) { tp_dev.scan(0); if (tp_dev.sta & TP_PRES_DOWN) { //触摸屏被按下 if (tp_dev.x[0] > 0 && tp_dev.x[0] < 130 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 0 && tp_dev.x[0] < 130 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i < 5) { password[i++] = '1'; } } else if (tp_dev.x[0] > 130 && tp_dev.x[0] < 260 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 130 && tp_dev.x[0] < 260 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i < 5) { password[i++] = '2'; } } else if (tp_dev.x[0] > 260 && tp_dev.x[0] < 390 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 260 && tp_dev.x[0] < 390 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i < 5) { password[i++] ='3'; } } else if (tp_dev.x[0] > 390 && tp_dev.x[0] < 520 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 390 && tp_dev.x[0] < 520 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i < 5) { password[i++] = '4'; } } else if (tp_dev.x[0] > 520 && tp_dev.x[0] < 650 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 520 && tp_dev.x[0] < 650 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i > 0) { password[--i] = '\0'; } } else if (tp_dev.x[0] > 650 && tp_dev.x[0] < 800 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 650 && tp_dev.x[0] < 800 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i == 4) { break; //退出密码输入循环 } else { Show_Hz16(300,250,"提示信息:用户名或密码错误",RED,WHITE); } } //显示部分 LCD_ShowString(400,150,400,24,24,password); } }
时间: 2023-07-16 07:11:48 浏览: 120
while (1) {
tp_dev.scan(0);
if (tp_dev.sta & TP_PRES_DOWN) { //触摸屏被按下
if (tp_dev.x[0] > 0 && tp_dev.x[0] < 130 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) {
if (i < 5) {
password[i++] = '1';
}
while(tp_dev.sta & TP_PRES_DOWN) { //等待触摸屏释放
tp_dev.scan(0);
}
} else if (tp_dev.x[0] > 130 && tp_dev.x[0] < 260 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) {
if (i < 5) {
password[i++] = '2';
}
while(tp_dev.sta & TP_PRES_DOWN) { //等待触摸屏释放
tp_dev.scan(0);
}
} else if (tp_dev.x[0] > 260 && tp_dev.x[0] < 390 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) {
if (i < 5) {
password[i++] = '3';
}
while(tp_dev.sta & TP_PRES_DOWN) { //等待触摸屏释放
tp_dev.scan(0);
}
} else if (tp_dev.x[0] > 390 && tp_dev.x[0] < 520 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) {
if (i < 5) {
password[i++] = '4';
}
while(tp_dev.sta & TP_PRES_DOWN) { //等待触摸屏释放
tp_dev.scan(0);
}
} else if (tp_dev.x[0] > 520 && tp_dev.x[0] < 650 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) {
if (i > 0) {
password[--i] = '\0';
}
while(tp_dev.sta & TP_PRES_DOWN) { //等待触摸屏释放
tp_dev.scan(0);
}
} else if (tp_dev.x[0] > 650 && tp_dev.x[0] < 800 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) {
if (i == 4) {
break; //退出密码输入循环
} else {
Show_Hz16(300,250,"提示信息:用户名或密码错误",RED,WHITE);
}
while(tp_dev.sta & TP_PRES_DOWN) { //等待触摸屏释放
tp_dev.scan(0);
}
}
//显示部分
LCD_ShowString(400,150,400,24,24,password);
}
}
在每个按键输入后,加入一个 while 循环等待触摸屏释放。这样可以防止连续点按导致密码输入错误。
阅读全文