Я предполагаю, что вы имели в виду:
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("Begin");
}
и на самом деле то, что вы хотите:
void setup() {
Serial.begin(9600);
Serial.println("Begin");
}
, потому что я думаю, что !Serial
не определено поведение, Serial
является экземпляр для последовательной связи , И вызов оператора not
класса Serial
может компилироваться и работать, но он всегда будет возвращать то же самое, независимо от того, является ли оно истинным или ложным. Если он вернет false, вы просто закончите блокировку своего ардуино от выполнения чего-либо еще после этого утверждения.
Хотя, в основном, при настройке последовательной связи вы можете с уверенностью предположить, что он готов к общению. Иногда вам может потребоваться немного отложить (примерно 3 секунды от моего собственного опыта), для главного компьютера для настройки устройства для каждого arduinos atmega32uX, что относится к Micro и Leonardo. Если вы не добавите эту задержку в 3 секунды, оператор Begin
будет напечатан Arduino, но вы его не увидите, так как компьютер не перезагрузил устройство снова до он печатается.
Чтобы лучше понять, что я имею в виду попробовать следующий код:
void setup() {
Serial.begin(9600);
Serial.println(10);
delay(1000);
Serial.println(9);
delay(1000);
Serial.println(8);
delay(1000);
Serial.println(7);
delay(1000);
Serial.println(6);
delay(1000);
Serial.println(5);
delay(1000);
Serial.println(4);
delay(1000);
Serial.println(3);
delay(1000);
Serial.println(2);
delay(1000);
Serial.println(1);
delay(1000);
Serial.println("Begin");
}
если открыть монитор последовательного порта очень рано, вы будете видеть только выход, начиная с 7
.
НТН
Вы действительно можете написать действующий код? Вы не закрыли свой блок. – zmo
Счастье, я забыл закрыть блок. исправил мой код уже. – shannon