我有一个带有触摸屏的 ILI9341 QVGA 彩色 TFT LCD 显示器的 ESP32 Wrover 模块(整个板是从 HackerBox 购买的,特别是 HackerBox50)。我已经设置了一个具有选项主菜单的程序,其中一个选项打开一个需要密码才能输入的键盘功能。当 Prompted loop() 调用 Canary_Setup() 函数时,该函数将调用触摸屏校准文件和 draw keypad() 函数。键盘工作正常,会将输入的密码发送到串行监视器,但由于某种原因,无论输入的密码如何,它都不会触发 if 语句。char 类型的变量“numberBuffer”是存储密码的地方。当我检查“numberBuffer”的 Len 时,它以正确的长度返回,但在 if 语句中没有正确注册。
变量声明:
char numberBuffer[NUM_LEN + 1] = "";
如果声明:
if (b == 2) {
status("Sent value to serial port");
Serial.print(numberBuffer);
if (numberBuffer == "2991") {
Serial.println("hello");
menu_return();
break;
} else {
Serial.println("wrong");
}
代码的所有其他方面都可以正常工作,对问题可能是什么有任何想法;我对 Arduino/硬件世界有点陌生,如果我的代码不干净,我很抱歉。