Uart: String empfangen

OP #3119640
Lesenswert?

Hallo,

Ich versuche mithilfe von UART mit meinem Mikrocontroller (ATmega32) 
einen vom PC aus gesendeten String zu empfangen.
Das Problem ist, dass ich mit folgendem Code

char line[20];
UART_gets( line, sizeof( line ));
lcd_string(line);

den ich hierher 
(http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART) 
habe, nach dem Senden des LF nur max. 2 Zeichen empfange /  ausgegeben 
werden.

Woran könnte das liegen? Wie bekomme ich es hin, dass ich ganze 
Zeichenketten empfangen kann?

Danke
Jonas E.
OP #3119678
Lesenswert?

Meiner Meinung nach funktioniert der Empfang nicht richtig.
Das Senden vom Mikrocontroller aus und das Anzeigen auf dem LCD 
funktionieren ansonsten (hardcoded) einwandfrei, auch mit Strings mit 
Längen > 2.
Das lässt darauf schließen, dass die Daten nicht richtig empfangen 
werden.

Die Bitrate etc. sind nach Angaben im Tutorial von mir gewählt und 
eingestellt worden.

Findest du einen Fehler in dem Code, den ich von der Seite benutze?
Gast #3119719
Lesenswert?

Versuchs doch mal direkt mit:

uint8_t uart_getc(void);

In Form von:
>>>
uint8_t Aussi [2];

Aussi [ 1 ] = 0;            // String zu ende
for (uint8_t i=0; i<50;i++) // 50 Etwasse dann Schluss von mir
                            // aus auch nur 49 oder eine LCD-Zeile
{
Aussi [ 0 ] = uart_getc (); // Zeichen holen
lcd_string(Aussi);          // Echo
}
<<<
Während des Versuchs: Fingen weg von den Sonderzeichen incl. line feed

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