带字符的Arduino开关

Nuñ*_*ada 4 arduino

我有一个 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)

Eri*_*rik 7

这段代码似乎做你想做的:

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并使用charAtString类的功能。

如果这有帮助,请告诉我。