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

Comparing concated string recieved from serial data in Arduino

本文关键字:确认 字符串 数据 Arduino 比较      更新时间:2023-10-16

我正在尝试将串行数据读取到一个字符串中,能够与另一个字符串进行比较。我正在使用 if (inputString.equals("test")) 来测试布尔值,但它总是返回 false 因为它们相等时永远不会显示,当在串行监视器中键入测试时永远不会显示(这确实回显了我发送到 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;
  }
}

谢谢!

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

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