Kommt drauf an was du vorhast. Wenn der Hardware-UART zur Verfügung
steht, nimm ihn doch. Falls du aus irgendeinem Grund keinen
Hardware-UART benutzen kannst (z.B. weil er schon verwendet wird) dann
musst du ihn eben per Software nachbilden.
Allerdings ist dann natürlich die CPU-Auslastung vom Controller deutlich
größer, da du bei jedem zu sendenden Bit einen Pin schalten musst. Bei
einem 12.xxx MHZ Quarz hast du dann noch ca. 65 Takte zwischen 2 Bits.
Wenn der Controller nix anderes machen soll, ist das durchaus Ok....
Auf jeden Fall benötigst du jedoch einen Hardware-Timer und idealerweise
einen Interrupt-fähigen Pin zum empfangen, sonst wird der Controller für
nix anderes mehr Zeit haben...