Hi - I've been using printf() with ESP32 for a long time now. Very happy that it's supported because I much prefer the formatted print features vs. multiple Serial.print() statements to obtain the same result.
But I just realized something...printf() doesn't seem to actually print to the serial port until a "\n" is in the stream. Don't know why I just realized this, all seems to have worked ok in my past...
For example, this prints a line of 5 'z's individually over 5 seconds:
Serial.print("z");
delay(1000);
Serial.print("z");
delay(1000);
Serial.print("z");
delay(1000);
Serial.print("z");
delay(1000);
Serial.print("z\n");
...but this prints 5 'x's all at once, only when the "\n" occurs:
printf("x");
delay(1000);
printf("x");
delay(1000);
printf("x");
delay(1000);
printf("x");
delay(1000);
printf("x\n");
Can anyone explain to me why this is so, and might there be other printf() vs. Serial.print() issues I'm not yet aware of?
Thanks...