Hey,
die Geschichte passiert schon bevor ich versuche zu empfangen.
Sobald ttyAMA0 auf die korrekte Baudrate eingestellt ist werden empfangene Zeichen zurückgeschickt.
Hier die Test Datei auf dem Atmega 32, die wenn ich sie starte fröhlich blinkt.
Code:
atmega 32




usart initialisierung

        UCSRC |= (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);        // Asynchron, 8N1
        UBRRH=(uint8_t)(UART_BAUD_CALC>>8);                        // Baudrate wählen
        UBRRL=(uint8_t)UART_BAUD_CALC;

        UCSRB |= (1 << TXEN);        // UART TX (senden) einschalten
        UCSRB |= (1 << RXEN);        // UART RX (empfangen) einschalten
        

usart funktionen:

void usart_putc(unsigned char c) // Ein Zeichen senden
{
    while(!(UCSRA & (1 << UDRE)));        // warte, bis UDR bereit 
    UDR = c;                                // sende Zeichen 
}


int16_t usart_getc_nowait (void)
{
    // Liefert das empfangene Zeichen, falls etwas empfangen wurde; -1 sonst 
    return (UCSRA & (1 << RXC)) ? (int) UDR : -1;
}




testprogramm:

while(1)
        {
         empfangen=usart_getc_nowait();
          if(empfangen=='B')
         {
         if (!z_led_links)
                {
                led_links(gelb);
                z_led_links=1;
                                                        
                }
                else
                {                        
                led_links(aus);
                z_led_links=0;                                                        
                }                                
        }
        
        if(kontroll_zaehler>=50) // Sekunde
        { 
          led_rechts(gruen);
         usart_putc ('B');
        
         kontroll_zaehler=0;
        }
   }