Hey,
du kannst den UART Interrupt nutzen.
Dann ließt du einfach alles was über den UART reinkommt ein und speicherst es in einem Buffer. Sobald ein deffiniertes Zeichen kommt, welches die Übertragung beendet (CR z.B.) kannst du den Buffer in einem festen String speichern und den Buffer löschen.
Den String brauchst du dann nur noch auslesen.
Die $-Zeichen kannst du dabei dann einfach herausfiltern.
Der Vorteil an dieser Methode ist (neben Inkey und Input), dass der Mikrocontroller nicht auf ein Zeichen wartet, da alles per Interrupts geschieht.
Bei Input und Inkey wartet der Controller solange an der Stelle bis ein Zeichen kommt. Gerade wenn du nicht weißt wann ein Zeichen kommt erzeugst du damit undeffinierte Pausen.
Und für die Checksumme....schau dir mal den Befehl "CRC16" an.
Lesezeichen