我有一个 switch 语句,但似乎不识别字符 C 总是打印默认值
void setup() {
Serial.begin(9600);
Serial.println("Serial conection started, waiting for instructions...");
}
String serialReceived;
char commandChar[1];
void loop() {
if(Serial.available() > 0) {
serialReceived = Serial.readStringUntil('\n');
serialReceived.substring(0,1).toCharArray(commandChar, 1);
switch (commandChar[0]) {
case 'C':
Serial.print("Arduino Received C");
break;
default:
Serial.print("default");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码似乎做你想做的:
void setup() {
Serial.begin(9600);
Serial.println("Serial conection started, waiting for instructions...");
}
String serialReceived;
char commandChar;
void loop() {
if(Serial.available() > 0) {
serialReceived = Serial.readStringUntil('\n');
commandChar = serialReceived.charAt(0);
switch (commandChar) {
case 'C':
Serial.print("Arduino Received C");
break;
default:
Serial.print("default");
}
}
}
Run Code Online (Sandbox Code Playgroud)
鉴于您只想要一个char,我更改了类的类型commandChar并使用charAt了String类的功能。
如果这有帮助,请告诉我。