uart ist völlig simpel,

ich rate hier DRINGEND zum studium des datenblatt des entsprechenden controller

du musst zunächst die steuerregister laden, mit baudrate, datenbit stoppbit und parität wie es dir am liebsten ist

dann zum senden, warten bis ein bestimmtest bit in dem UART flag register "frei" wird, und ein byte das gesendet werden soll in das datenregister schreiben

empfangen kannst du ebenfalls über wiederholtes auslesen des flag register, wenn ein empfangenes byte signalisiert wird, einfach das byte aus dem datenregister kopieren
ODER
den interrupt für UART revceive programmieren und in der interrupt routine das byte in einem array zwischenspeichern und im hauptprogramm das/die bytes auswerten