Forum: Mikrocontroller und Digitale Elektronik MSP430: UART TX immer BUSY


von Phil20 (Gast)


Lesenswert?

Hallo,

ich habe zwar schon öfters den UART beim MSP430G2755 erfolgreich 
benutzt,
aber im Moment "steh ich auf dem Schlauch".

Das Problem ist, dass beim Senden eines Datums der TX nicht fertig wird
und auch nichts sendet. Das UCBUSY bit im UCA0STAT ist immer "1", sobald
das Datum in UCA0BUF geschrieben wird. Ich benutzte die Polling Methode
um zu senden.

Die Initialisierung ist eigentlich immer gleich:
1
void init_uart(void)
2
{
3
//Clock source=SMCLK, 14,7456 MHZ Quarz,
4
    UCA0CTL1 = 0;   // SMCLK + SW Reset
5
    UCA0CTL1 |= UCSSEL_2 + UCSWRST; // SMCLK + SW Reset
6
    UCA0CTL0 = 0;
7
    UCA0BR0 = 0x10;                 // 57600 bd
8
    UCA0BR1 = 0x00;
9
    UCA0MCTL = UCOS16;
10
    P3SEL |= 0x30;                  // P3.4,5 = USCI_A0 TXD/RXD
11
    UCA0CTL1 &= ~UCSWRST;           // **Initialize USCI state machine**
12
}

Hat jemand eine Idee was das Senden verhindern könnte und damit der TX
immer BUSY ist?

Danke

von Clemens L. (c_l)


Lesenswert?

Dieser Code sendet nichts. Man müsste schon das ganze Programm sehen.

Bist du sicher, dass der Oszillator läuft?

Ich würde ja die Beispielprogramme von empfehlen, aber die benutzen 
immer Interrupts.

von Phil20 (Gast)


Lesenswert?

> Bist du sicher, dass der Oszillator läuft?
Danke für den Tip!

Das war's.

Irgendwie sind mir nach dem Clocksetup bei den Portinitialisierung die 
bits
6 und 7 von Port2 gelöscht gekommen.

Danke nochmals.

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.