Gast
#321441
hallo, versuche gerade per uart daten an meine serielle schnittstelle zu
senden jedoch kommen im terminal immer nur punkte an, ich habe es hier
mit einem beispielprogramm aus einem tutorial versucht, woran könnte es
liegen?
#include <avr/io.h>
#define F_CPU 3686400
#define BAUD 9600
#define UBRR_BAUD ((F_CPU/(BAUD*16))-1)
/* USART initialisieren */
void uart_init(void);
int main(void)
{
unsigned char buffer;
/* USART initialisieren */
uart_init();
while (1)
{
/* Warten bis Daten empfangen wurden */
while ( !(UCSRA & (1<<RXC)) )
;
/* Empfangsregister auslesen */
buffer = UDR;
/* Warten bis der Sendepuffer frei ist */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Daten in den Puffer schreiben und damit senden */
UDR = buffer;
}
}
/* USART initialisieren */
void uart_init(void)
{
/* Baudrate einstellen ( Normaler Modus ) */
UBRRH = (unsigned char) (UBRR_BAUD>>8);
UBRRL = (unsigned char) UBRR_BAUD;
/* Aktivieren von receiver und transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit */
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}