Arduino不接受多个命令

Arduino not taking multiple commands

本文关键字:命令 不接受 Arduino      更新时间:2023-10-16

我正在尝试用我的Arduino完成基础工作,因此我开始从小处着手。

也就是说,我想让Arduino监听从我的Raspberry Pi发送的简单、多个命令(然而,我现在正在通过串行监视器模拟它(

这是我正在使用的代码:

#include "SoftwareSerial.h"
void setup()
{
  Serial.begin(9600);
  delay(100);
}
void loop() {
    if (Serial.find("test1")) {
      delay(100);
      Serial.println("TEST1 command received");
    }
    if (Serial.find("test2")) {
      delay(100);
      Serial.println("TEST2 command received");
    }
  }
}

遗憾的是,只有test1命令会触发串行打印响应,test2没有。这里有人能帮我指明正确的方向吗?

谢谢!

通过阅读文档,我认为您不能像那样使用find()函数。

考虑当find("test1")调用正在运行时,如果输入test2会发生什么。它可能会消耗包括2在内的所有字符,然后返回false,此时这些字符将丢失。

我认为您应该设计一个实际的协议,在命令之间使用一些分隔符,并读取/解析这些命令。