Löschbefehl für serielles Terminal über UART

Löschbefehl für serielles Terminal über UART

Ich sende cmd_clr_scr[] = { 27, 91, 50, 74, 27, 91, 72, 0 }; über UART, um den Bildschirm zu löschen und den Cursor in die obere linke Ecke des Bildschirms auf meinem seriellen Terminal (Putty) zu bewegen.

Ich habe zwei Treiber für UART, einen blockierenden und einen nicht blockierenden. Mit blockierend meine ich, dass der UART-ISR erst zurückkehrt, wenn alle Zeichen übertragen wurden. Beim nicht blockierenden Treiber hingegen kehrt der UART-ISR zurück, sobald er das erste Byte sendet, das nächste Byte wird bei einer Unterbrechung am Übertragungsende gesendet und so weiter.

Das Problem ist: Das Senden von cmd_clr_scr mit dem blockierenden Treiber tut, was es tun soll, aber mit dem nicht blockierenden Treiber bewegt sich der Cursor nur in die obere linke Ecke des Bildschirms, ohne den Text zu löschen. Ich habe die Treiber doppelt überprüft, indem ich sie durchgegangen bin, und sie funktionieren beide auf die gleiche Weise, d. h. sie senden genau dieselben Zeichen in genau derselben Reihenfolge.

Gibt es Einschränkungen bei der Verwendung der Löschbefehlszeichenfolge?

Irgendwelche Gedanken?

Antwort1

Ich benutze am Ende die Saiten, die ich gefunden habeHieranstelle der Zeichenfolge, die ich in der Frage erwähnt hatte. Ich habe auch einen Fehler im Treiber gefunden, aber das war wahrscheinlich nicht das Problem, da das Problem bereits vor dem Auffinden des Fehlers behoben war.

verwandte Informationen