Mache dir nochmal Gedanken über die genaue Position der Zeile "c = uart_getc();" innerhalb der while-Schleife. So wie es jetzt ist, wird aus der while-Schleife unweigerlich eine Endlosschleife nach den ersten 1-3 Zeichen.