我正在使用一个带有if语句的开关盒来帮助触摸屏触摸
以下代码返回true通过串行终端确认触摸坐标将值页面在代码开头设置为0,直到主屏幕加载然后切换到1(再次由串行终端确认)但即使我有确认一切都是真的它不会运行真实事件(目前只是一个串行打印命令。
int page = 0; // page number active
这是包含
的代码的顶部然后在主循环中
switch (page) {
// --------------check to see if screen 1 is loaded-----------------
case '2': { // Screen 1 Active As when screen 1 loads it chages the value of page to 1
if ((p.x > 137 && p.x < 210)&& (p.y > 280 && p.y < 320))
Serial.print("option1");
else if ((p.x > 80 && p.x < 112)&& (p.y > 280 && p.y < 320))
Serial.print("option1.2");
else if ((p.x > 45 && p.x < 85)&& (p.y > 280 && p.y < 320))
Serial.print("option1.3");
else if ((p.x > 5 && p.x < 24)&& (p.y > 280 && p.y < 320))
Serial.print("option1.4");
break;}
主屏幕在设置后加载并将页面转换为值1
void mainmenu(){
page = 1;
Serial.print("Initializing SD card...");
if (!SD.begin(SD_CS)) {
Serial.println("failed!");
}
Serial.println("OK!");
tft.fillScreen(BLACK);
Title();
Grid();
Buttons();
{
按下按钮1后从串行终端返回的值
p.x is more than 137
p.x is less than 210
p.y is more than 280
p.x is less than 320
X 196 & Y 310 Page Value= 1
但仍然没有消息Serial.print(&#34; option1&#34;)
我将if语句分解为单独的值,每个都返回true 所以我只能想到它在案例中的一些东西,但我不确定是什么
答案 0 :(得分:1)
您是否尝试更改此行
case '2': {
有这个吗?
case 2: {
还尝试将println放在大小写之后,以确保switch语句正常工作
case 2: {
Serial.println("Entered in case 2");