Wie sieht jetzt Deine USART-RX-funktion aus - wird da auch noch auf den Port zugegriffen?

Ist Dir bewusst, daß die Datenübertragung zum uC langsamer als die Abarbeitungsgeschwindigkeit im uC ist?

Ist Dir bewusst, daß wenn Du kein Zeichen sendet, auch kein Zeichen übertragen wird?

Typischerweise, würde ich ein WindoofProgramm dann so schreiben, daß ein Steuerzeichen gesendet wenn "Taste gedrückt" und ein weiteres, wenn Taste wieder losgelassen wird.

Sprich im uC den Port nicht im switch.default löschen, sondern eben durch einen anderen Steuercode.

Je nachdem welche Daten Du noch übertrage willst, gehen Dir die Steuerzeichen irgendwann aus Also sollte aus den Steuerzeichen einen Befehlssequenz werden, typ. weise inkl. prüfsumme.

Auf uC-Seite würde ich nicht das vorhandensein von Zeichen im Puffer via Timer prüfen. Sondern ein flag setzen, wenn die Empfangssequenz vollständig ist ....