UART Probleme im AVR

OP #2470306
Lesenswert?

Hi,

ich habe eine merkwürdige Erscheinung der UART-Schnittstelle im AVR 
gefunden. Nach der Initialisierung habe ich ein Zeichen im Terminal an 
den AVR gesendet. Der AVR sendet aber dieses Zeichen automatisch zurück, 
obwohl die UART-Routine noch nicht gestartet wird.

Hier die Initialisierung:
1
void USART_Init(unsigned int baudrate)
2
{
3
    // Set baud rate
4
    UBRR0H = (unsigned char)(baudrate>>8);
5
    UBRR0L = (unsigned char)baudrate;
6

7
    // Enable 2x speed
8
    UCSR0A = (1<<U2X0);
9

10
    // Enable receiver and transmitter
11
    UCSR0B = (1<<RXEN0)|(0<<TXEN0)|(0<<RXCIE0)|(0<<UDRIE0);
12

13
    // Async. mode, 8N1
14
    UCSR0C = (0<<UMSEL0)|(0<<UPM00)|(0<<USBS0)|(3<<UCSZ00)|(0<<UCPOL0);
15
}
Ist das normal? Im AVR besitzten der Sender und der Empfänger das selber 
Register UDR0. Ist das die Ursache?

Danke
Owen
Gast #2470312
Lesenswert?

Das ist nicht normal.

Entweder Du hast an Deinem Terminalprogramm "Local Echo" eingestellt 
oder der Code den Du uns nicht gezeigt hast, sendet ihn, obwohl Du etwas 
anderes annimmst, doch zurück.
Also:
Einstellungen des Terminalproggrammes prüfen
falls das negativ ausfällt, den kompletten Code, reduziert um alles 
unnötige, aber so das der Fehler noch auftritt, posten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren