Tscha, opfere mal 2 LED für die doch möglichen Errors
die sind im UCSRA und heißen FE und DOR (Framing & Overflow)
die mußt Du abfragen VOR daten = UDR
ist einer "1" laß eine LED leuchten

Nächster Vorschlag (einfacher, also zuerst probieren
Pfeif auf die LED und mach einfach echo und sonst nix.
SIGNAL(..)
{
UDR = UDR // (TXEN nicht vergessen)
}

PS Buffer gibt's schon, aber der ist gewissermassen transparent (nicht sichtbar) Kopf hoch, das ist ja lächerlich mfg robert