Arduino程序在没有Serial.print(5chars)的情况下无法工作



以下代码正在工作,但我根本不想打印任何内容。

while(true) {
  String inputString2="";
  while(Serial.available()) {
    char inChar2 = char(Serial.read());
    //on va lire un char et l'enregistrer dans inChar
    inputString2 += inChar2;
    //on va concaténer inChar dans inputString
    Serial.print("12345");
  }
  if (inputString2.indexOf("okrnokrn")!=-1) {
    //on vérifie quelle donnée a été lue
    break;
  }
  inputString2="";
}

Serial.print("12345");少于 5 个字符时,程序不会到达循环中断。

if (inputString2.indexOf("okrnokrn")!=-1) {
  //on vérifie quelle donnée a été lue
  break;
}

>while loop(while(Serial.available()))比从其他设备串行发送快得多。因此,inputString2将始终被初始化。

这是一个简单的编辑:

String inputString2="";
while(true) {        
  while(Serial.available()) {
    char inChar2 = char(Serial.read());            
    inputString2 += inChar2;        
  }
  if (inputString2.indexOf("okrnokrn")!=-1) {
    inputString2=""; //clear variable
    break;
  }  
}

但这并不好。怎么样?

//global variable
String inputString2="";
void loop() {
  //If there is no data to read, exit loop
  if(Serial.available() <= 0)
    return;
  char inChar2 = Serial.read();
  inputString2 += inChar2;
  if (inputString2.indexOf("okrnokrn")!=-1) {
    // to do begin 
    // to do end
    inputString2="";
  }  
}

相关内容

最新更新