比较从Arduino中的串行数据接收的concat字符串

时间:2012-11-28 21:42:01

标签: c++ arduino

我正在尝试将串行数据读入一个能够与另一个字符串进行比较的字符串。我正在使用if(inputString.equals(“test”))来测试布尔值,但它始终返回false,因为在串行监视器中输入测试时,它永远不会显示为EQUAL(它会回显我发送的内容)到arduino)。有任何想法吗?是这样串联字符串为字符串添加额外的,不显示的字节?

String inputString = "";         // a string to hold incoming data
boolean stringComplete = false;  // whether the string is complete

void setup() {
// initialize serial:
Serial.begin(9600);
}

void loop() {
  // print the string when a newline arrives:
  if (stringComplete) {

       if (inputString.equals("test")) {
       Serial.print("THEY ARE EQUAL"); 
    }

    Serial.print(inputString); 
    // clear the string:
    inputString = "";
    stringComplete = false;
    }

   }

void serialEvent() {
  while (Serial.available()) {
  // get the new byte:
  char inChar = (char)Serial.read(); 
  // add it to the inputString:
  inputString += inChar;
  stringComplete = true;

  }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要留出足够的时间来读取串行数据。添加延迟

char inChar = (char)Serial.read(); 
// add it to the inputString:
delay(100);
inputString += inChar;