Arduino Serial Monitor在打印字符0,1,2等之前打印字符0,1

时间:2014-09-26 22:02:11

标签: c# printing arduino

我正在使用非常简单的ardunio代码来打印“hello world”。就一次。但是当它打印到串行监视器时,字符“hehello world”。出现。有谁知道为什么“他”被打印两次?

void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print("hello");
 delay(1000);
Serial.print(" ");
Serial.print("world.");
  delay(1000);
Serial.print("  ");  
  delay(1000);
while(1) {}
}

1 个答案:

答案 0 :(得分:0)

我不是百分百肯定,而是一些可能性:

  • 首先,这段代码将在Arduino上电后立即开始运行,但在您告知之前它不会输出到串行监视器。那么"你好"很可能已经在你打开它的时候编写了。你可以通过长时间延迟来解决这个问题,你好"你好"命令或Serial.begin()之后。

  • 另一个想法:delay()可能干扰了连续写作。写入序列需要一定的时间,当代码到达delay()调用时,它仍然可能正在编写" hello"。您可以使用delay()以外的函数来解决此问题。例如,有一个名为startTime的变量,该变量在millis()期间启动到setup()。然后说(例如):

    if (millis()>startTime+1000 && !helloSent){
      Serial.print("hello");
      helloSent=true;
    }
    

然后摆脱你的while循环。

这些都不能真正解释" hehello" (如果有的话,我希望你能看到" llo"或者其他一些)。但是他们想的是。

显而易见:确保串行监视器上的波特率最高可达9600