У меня возникла странная проблема, и я не могу понять, что я делаю неправильно ... Должно быть что-то!Значение переменной не поддерживается во время цикла
Я объясню это коротко ... Я разрабатываю платформу Arduino (насколько я знаю, это сильно основано на C++), и в разделе моего фактического кода у меня есть цикл while ...
Итак, где проблема?
Если установить переменную (флаг в моем случае) внутри цикла в то время как он получает сбрасывается каждый раз, когда этот код в функции ... (может быть полезно)
Вот оно:
void waitResponse(char* text) {
static bool flag = false;
count = 0;
digitalWrite(GREEN_PIN, HIGH); //Turn OFF Green LED
while (!espSerial.available()) { //Wait until we get some data in...
Serial.println("No data");
notBlockingBlink();
}
while (!flag) { //We got sth
Serial.print("Flag value 1: ");
Serial.println(flag);
while (espSerial.available()) {
Serial.println("In");
if (search(text)) {
flag = true;
Serial.println("Found");
Serial.print("Flag value 2: ");
Serial.println(flag);
break;
} else {
notBlockingBlink();
}
}
Serial.print("Flag value 3: ");
Serial.println(flag);
notBlockingBlink();
}
}
Я пытался отладить мой вопрос ...
После ввода, если блок, где есть «Найдено», флаг получает значение истинной, на самом деле "значение флага 2: "является правда так же, как" значение флага 3:», но на следующей итерации "значение флага 1:" на самом деле ложь ...
Что случилось ? Пожалуйста, просветите меня! Спасибо
_ «Я попытался отладить мою проблему ...» _ Очевидно, что это недостаточно серьезно. –
Что делает 'notBlockingBlink();' do? – NathanOliver
@NathanOliver Это делает светодиод мигающим, но я думаю, что это не имеет значения ... –