Ahoi, beim ESP32 wird bei stdio Ausgaben (printf, putchar) "\n" nach "\r\n" übersetzt. Ich bin mir recht sicher, dass es da einen Switch gibt um das abzuschalten. Einige Sucherei in der stdio-lib war leider erfolglos. https://github.com/espressif/newlib-esp32/tree/master/newlib/libc/stdio Hat jemand eine Idee? Danke, C.B.
Google spuckt so etwas aus:
1 | make menuconfig |
2 | ... |
3 | Component config -> ESP32-specific config -> Standard-out output adds carriage return before newline |
Frank, ich verneige mich vor Deinem Google-fu! Ausprobiert - es geht. Nach was hast Du gesucht?
Ja, der Link ist genau der, den ich auch gefunden hatte. Suchbegriffe waren: esp32 printf newline no carriage return
Ah, ich hatte speziell nach einem Switch für stdio gesucht. Nochmal Danke!
Ich bin etwas neugierig geworden: Warum möchtest Du das \r unterdrücken? Normalerweise ist es sinnvoll, dass bei einer Bildschirmausgabe (Unix/Linux: "tty") aus \n ein \r\n gemacht wird, damit der Cursor im Terminal tatsächlich durch das \r (Carriage Return) zunächst an den Anfang der Zeile geht und dann mit dem \n (Newline) eine Zeile tiefer rutscht. Ohne dieses Mapping fängt nämlich jede neue Zeile eingerückt an und der Output wandert immer weiter nach rechts. Unter Unix kann man dieses Mapping durch diverse ioctls bzw. termio-Calls manipulieren, um volle Kontrolle über die Bildschirmausgabe zu bekommen und solche Mappings zu unterdrücken. Macht man aber eigentlich nur, wenn man eine Full-Screen-Anwendung baut wie einen Editor oder ein Menüsystem. In diesem Fall kann man dann auf curses (Unix) bzw. ncurses (Linux) bzw. mcurses (µCs) zurückgreifen, die so etwas verwalten. Also: Was stört Dich an \r\n?
Ursache ist der Wunsch nach Kompatibiltät zu einem bestehenden System. Der ESP32 ist nur ein Nebenschauplatz in dem Projekt und soll ebenfalls ein seit 20 Jahren etabliertes, proprietäres Telegrammformat nutzen. Sowas wie "MU FO 0\n". Mangels Pins hängen ein paar Teilnehmer per wired-AND am Konsolen-UART. Die Frage habe ich geschrieben, weil z.B. ein freopen zur Folge hatte, dass gar nichts mehr gesandt wurde. Tatsächlicher Chip ist der ESP32-WROVER. Die entsprechende Baugruppe ist fertig zugelassen und im Markt, wir schrauben im Moment ein paar neue Features an die Firmware.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.