Arduino - 只有在完成读序列时才做某事吗?

时间:2014-11-22 13:32:58

标签: arduino

我在这里遇到一些基本问题。 如果要将串行数据作为字符串读取,而不是根据该值执行某些操作,则会出现此问题:

  while(Serial.available()) 
      {

      character = Serial.read();
      content.concat(character);
         delay(10); 

        }

             //do something with the value 
             int myInt = content.toInt();
             float myFloat=myInt;
              analogWrite(10,myInt)  ;

              //clear
              content="" ; //i must clear it for the next word !

当您清除content,而不是下一个循环时,您会获得内容=“”,并且您不希望将该值放入模拟/使用它做什么,但< strong>仅当序列中存在更改时,才使用该新值。

我找不到办法做到这一点......当他读完新数据时我没有迹象(仅限)

1 个答案:

答案 0 :(得分:1)

将它包装成if if:

if(!(content == "")) {

    //do something with the value 
    int myInt = content.toInt();
    float myFloat=myInt;
    analogWrite(10,myInt);
    //clear
    content="" ; //i must clear it for the next word !

}

如果您想通过放置:

在顶部等待串行输入,也可以暂停代码
while (!(Serial.available())) { }

在您的初始串行读取代码段之上