My code.
void loop() {
if(Serial.available()) {
String str = Serial.readStringUntil('\n');
Serial.printf("String1:%s\n", str);
Serial.print("String2:");Serial.println(str);
Serial.printf("char*:%s\n", str.c_str());
}
}
Send 1234567890 with Serial. (length 10)
String1:1234567890
String2:1234567890
char*:1234567890
Send 12345678901 with Serial. (length 11)
String1:@��?
String2:12345678901
char*:12345678901
When I send String object from arduino(esp32) to computer with Serial.printf("%s"), if its length is 11 or more, the strange is sent.
String str = "12345678901";
Serial.print(str); // ok
Serial.println(str); // ok
Serial.printf(str); // incorrect syntax
Serial.printf("%s", str); // error