-1
#include <stdio.h>

#define LED 13

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() == 4) {
    char command[5];

    for (int i = 0; i < 4; i++) command[i] = Serial.read();
    command[4] = '\0';

    Serial.println(command);

    if (strcmp(command, "AAAA") == 0) {
      digitalWrite(LED, HIGH);
      Serial.println("LED13 is ON");
    } else if (strcmp(command, "BBBB") == 0) {
      digitalWrite(LED, LOW);
      Serial.println("LED13 is OFF");
    }
  }
}

4文字の長い文字列を読み取るコードがあります。ただし、4 文字以外の文字列は無視する必要があります。

したがって、次の入力を想像してください。

AAAA
BBBB
BBB
AAAA

現在、{"AAAA", "BBBB", "BBBA"} と表示されています。

{"AAAA", "BBBB", "AAAA"} を読み取るために必要です。

何か案が?ありがとうございました。

4

1 に答える 1

0

キャラクター間ディレイの継続時間を確認できます。100ms などのタイムアウトを設定します。指定されたタイムアウト後にデータが受信されない場合、文字列全体が完全に転送されたことを意味します。次に、文字列の長さを確認し、アプリケーション ロジックを実行できます。

于 2012-06-10T09:09:12.353 に答える