我有下面這段代碼,我從this forum那裏得到了我遵循的代碼。它沒有爲我工作,但他們聲稱代碼是好的。我已經嘗試了幾種字符串比較方法,如string.equals(string)
和標準==
運算符,但仍沒有運氣。如何比較Serial.read()中的字符串?
int ledPin = 13;
String readString;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
Serial.println("serial on/off test 0021"); // so I can keep track
}
void loop() {
while (Serial.available()) {
delay(3);
char c = Serial.read();
readString += c;
}
if (readString.length() >0) {
if (readString == "on") {
Serial.println("switching on");
digitalWrite(ledPin, HIGH);
}
if (readString == "off") {
digitalWrite(ledPin, LOW);
}
readString="";
}
}
你首先必須確保字符串的長度相等,然後才能對它們進行比較。使用delay()非常不可靠,且浪費,請使用特定字符來標記字符串的末尾。像'\ n'一樣。 –