Die ASCII-Übertragung ist recht einfach und kann mit jedem Terminal-Programm 'kontrolliert' werden.
Als Start-Byte wählst Du ein ASCII-Zeichen, daß Du sonst nicht brauchst.
Damit muß der 'Empfänger' immer nur auf dieses Startzeichen warten.
Es gibt da schon 'vorgefertigte' Zeichen: STX = Start of Text, ETX = End of Text, usw. Schau Dir mal eine ASCII-Tabelle an.
Dazwischen wandelst Du die zu übertragenden Daten in Nible .... + 30hex = 30hex...39hex = '0...9' (wenn größer 39hex, dann + 7 = 41hex...46hex = 'A...F') und schickst die raus.
Du kannst auch nach dem STX eine feste Anzahl von ASCII-Zeichen ausgeben, dann wird das ETX gespart.
Ich selbst verzichte auch auf ETX und sende am Ende Return und LineFeed; dann zeigt jedes Terminal-Programm die Daten sauber untereinander an; sie können auch direkt gedruckt werden (mit einem seriellen Drucker versteht sich).
Wenn die Daten nicht besonders wichtig sind, kannst Du auch auf eine Checksumme verzichten. Am 'Empfänger' können die übertragenen Zeichen und die daraus entstehenden Werte auf Sinn oder Unsinn geprüft und evtl. verworfen werden.