2

私は Arduino プロジェクトに取り組んでおりSerial port、arduino シリアル イベントで からいくつかのコマンドを受け取りたいと考えています。ただし、常に条件を満たさないため、コードはシリアル イベントが終了したことを認識できません。これが私のコードです。

void serialEvent() {
    while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read(); 
    if (inChar == '`')
    {
        // add it to the inputString:
        inputString += inChar;
        // if the incoming character is a newline, set a flag
        // so the main loop can do something about it:
        if (inChar == '|') {
            settingsReceived = true; // <----- This will never be called
            Serial.println("true"); // <------ Nor this will too
        }  
    }
  }
}

シリアル モニタから文字列を渡そうとしました`Hello|が、応答しません。Line endingさらに、 withNo Line Endingを試しましたが、うまくNewlineいきません。誰か助けてください。ありがとう!

4

2 に答える 2

1

inputstringスケッチで定義されていますか? また、loop()いくつsetup()かのタスクを完了する必要があります。参照: http://arduino.cc/en/Tutorial/SerialEventこのページには良い開始例があり、最初に動作するようにしてから、特定のコードに合わせて変更してください。

「こんにちは|」と入力すると Enterキーを押します。「|」とは何ですか 為に?行末文字として '\n' をテストしていない理由はありますか?

また、 inChar == '`' をテストしてから文字列に追加していますが、「こんにちは」と入力していますか? シリアル I/O は一度に 1 文字を渡すため、入力された inChars を許可する必要があります。

于 2013-08-10T05:45:12.833 に答える