Forum: Mikrocontroller und Digitale Elektronik Einstellung Uart bautrate


von Fubar (Gast)


Lesenswert?

Hallo,

das ist mein start in diesem forum und warscheinlich stelle ich die 
frage obwohl sie schon irgendwo beantwortet wurde.

bitte verzeit mir schonmal im vorraus das ich nichts gefunden habe.

ich will mein Uart auf eine baudrate von 9600 einstellen um ihn mit 
meinem esp8266 Wifi mudul kommunizieren zu lassen.

jetzt mein problem egal was ich mache die baudrate bleibt bei 600.
1
#define F_CPU 16000000 /* evtl. bereits via Compilerparameter definiert */
2
#define BAUD 9600
3
#include <util/setbaud.h>
4
5
6
void uart_init(void)
7
{
8
9
  UBRRH = UBRRH_VALUE;
10
  UBRRL = UBRRL_VALUE;
11
   /* evtl. verkuerzt falls Register aufeinanderfolgen (vgl. Datenblatt)
12
      UBRR = UBRR_VALUE;
13
   */
14
#if USE_2X
15
   /* U2X-Modus erforderlich */
16
   UCSRA |= (1 << U2X);
17
#else
18
   /* U2X-Modus nicht erforderlich */
19
   UCSRA &= ~(1 << U2X);
20
#endif
21
  
22
  UCSRC = (1<<UCSZ1)|(1<<UCSZ0);  // Asynchron 8N1
23
  UCSRB |= (1<<TXEN);
24
  UCSRB |= (1<<RXEN);                        // UART RX einschalten
25
}
besten dank für die hilfe

noch was ... ich benutze einen ATmega8A mit einem 16MHz quarz und 3.3V

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

1
  UCSRC = (1<<URSEL) | (1<<UCSZ1)|(1<<UCSZ0);  // Asynchron 8N1
2
//        **********

das URSEL Bit ist wichtig! Wird es hier nicht angegeben, dann 
beschreibst du hier nicht UCSRC sondern UBRRH

von Fubar (Gast)


Lesenswert?

Danke!! Das habe ich übersehen .... jetzt ist alles i.o.!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.