【问题标题】:Arduino clear bufferArduino清除缓冲区
【发布时间】:2012-05-04 22:29:20
【问题描述】:
#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"}。

有什么想法吗?谢谢。

【问题讨论】:

    标签: c++ c arduino microprocessors


    【解决方案1】:

    您可以检查字符间延迟的持续时间。设置超时时间,例如 100 毫秒。当在指定的超时后没有接收到更多数据时,这意味着整个字符串被完全传输。然后您可以检查字符串的长度并执行您的应用程序逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-11
      • 1970-01-01
      • 2017-01-26
      • 2012-10-12
      • 1970-01-01
      • 2016-08-18
      • 2020-05-16
      • 2011-04-15
      相关资源
      最近更新 更多