Herzlichen Dank erstmal, die Sache mit den 16bit-Zahlen wusste ich zwar, 
hatte sie aber nicht hinreichend berücksichtigt. Leider funzt mein 
modifizierter Code immer noch nicht:
| 1 | void uart_gets(char* Buffer, int MaxLen)
 | 
| 2 | {
 | 
| 3 |   int Count = 0;
 | 
| 4 |   unsigned int c;
 | 
| 5 | 
 | 
| 6 |   c = uart_getc();
 | 
| 7 |   c = (unsigned char)c;
 | 
| 8 |   uart_putc(c);
 | 
| 9 |   while(c != '.')
 | 
| 10 |   {
 | 
| 11 |     Buffer[Count++] = c;
 | 
| 12 |     c = uart_getc();
 | 
| 13 |     c = (unsigned char)c;
 | 
| 14 |     uart_putc(c);
 | 
| 15 |   }
 | 
| 16 |   Buffer[Count] = '\0';          //wird nie ausgeführt
 | 
| 17 |   uart_puts("-->");  
 | 
| 18 |   uart_puts(Buffer);
 | 
| 19 | }
 | 
Ich hab die Fehlerbehandlung mal komplett rausgelassen, 'Luxus' kann man 
immer noch später implementieren. Die Bedingung in der while-Schleife 
ist allerdings immer wahr, so dass der Pfeil (-->) nie ausgegeben wird.
Wo ist mein Denkfehler?