With the source code below, I'm getting what I think to be strange behaviour with the serial port output.
void setup() {
Serial.begin(9600);
}
int c = 0;
void loop() {
Serial.println(c++);
}
Presumably what this will do is starting printing incrementing numbers, one on each line, starting from 0. However, my serial monitor only starts printing these numbers after the 3000 mark. I found this behaviour only after discovered in another sketch that I was losing data at the beginning.
Is this normal Arduino behaviour? Or a serial monitor problem? Or something else?
-
Is it consistent? Does it always begin at 3000? And does it continue as expected (3001,3002,...) after that?SoreDakeNoKoto– SoreDakeNoKoto2016年03月05日 00:36:52 +00:00Commented Mar 5, 2016 at 0:36
-
There are many Arduino models. It helps considerably to state in the question which one you are using.Nick Gammon– Nick Gammon ♦2016年03月05日 06:26:20 +00:00Commented Mar 5, 2016 at 6:26
1 Answer 1
Is this a Leonardo or Yun? If it is, you have to wait until the Serial
object says the USB connection is really ready:
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB
}
Read this.
Because you did't wait, your loop
is able to execute 3000 times before Serial
actually sends something back to the PC.