2017-01-25 16 views
0

が、私はこのコードを持っている文字数:ArduinoのSerial.readStringUntilは

void setup() { 
    Serial.begin(9600); 
    while (!Serial){} 
    Serial.println("Connected"); 
    Serial.println("L"); 
    Serial.println("R"); 
    Serial.println("B"); 
    Serial.println("S"); 
    Serial.println("T"); 
} 

void loop() { 
    evalComms(Serial.readStringUntil("0")); 
} 

void evalComms(String recv){ 
    if (recv == "L"){ 
    Serial.println("ok L " + String(Serial.parseInt())); 
    } else if (recv == "R"){ 
    Serial.println("ok R " + String(Serial.parseInt())); 
    } else if (recv == "B") { 
    Serial.println("ok B " + String(Serial.parseInt())); 
    } else if (recv == "S") { 
    Serial.println("ok S"); 
    } else if (recv == "T"){ 
    Serial.println("ok T"); 
    } else if (recv != ""){ 
    Serial.println("Comm error. Read: " + recv); 
    } 
} 

予想されるI/Oシナリオ: の場合:L020 OUT:OK L 20

実際のI/Oシナリオ: IN:L020 OUT:通信エラー。読む:L020

私は間違っていますか?

答えて

0

試してみてください。

Serial.readStringUntil('0')docsごとに、それはそうでchar

を受け入れるように私はシリアルで、その後、(ENTER)\nを言って

を終了文字を変更することをお勧めしたいので、:"L\n20"ますあなたに正しい出力を与える。

void loop() 
{ 
    if(Serial.available() > 0) 
    { 
     evalComms(Serial.readStringUntil('\n')); 
    } 
} 
+0

実際に「x」と「x」の違いがあるとお考えですか? さて、まあ、今日私は何かを学んだ...つまり、チェコプログラマーのレイアウトが両方のキーを持っている理由かもしれません... –