MSP430 UART „Hallo Welt \n“

Um Daten vom MSP43F169 an den Rechner senden zu können bietet sich die serielle Schnittstelle an. Wenn der MSP430 über UART Daten sendene soll müssen sich über folgende Schritte gedanken gemacht werden:

1) Watchdog deaktivieren

2) Clock initialisieren

3) UART initialisieren

4) Hauptprogramm ausführen

Im folgenden Beispiel ist am uC an XT2 ein 8 MHz Quarz angeschlossen. Dieser wird als MCLK und SMCLK genutzt. P3.4 ist am Rxd des FT232 angeschlossen und P3.5 am Txd Signal des FT232.

Der Code:

#include
#define STOP_WATCHDOG WDTCTL = WDTPW + WDTHOLD;

void initClock(void);
void initUSART0(void);
void sendChar(char c);
void sendString(char* s);

void main(void)
{
STOP_WATCHDOG;
initClock();
initUSART0();
while(1)
{
sendString("Hallo Welt\n");
}
}
void initClock(void)
{
unsigned int i;
BCSCTL1 &= ~XT2OFF;
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG) != 0); // OSCFault flag still set?
BCSCTL2 |= SELM1 + SELS;// select XT2 as MCLK and SMCLK
}
void initUSART0(void)
{
P3SEL |= BIT4+BIT5;// select USART0 functionallity
ME1 |= UTXE0 + URXE0;// enable RX TX on USART0
UCTL0 |= CHAR;// 8 Bit char
UTCTL0 |=SSEL1;// select SMCLK 8 MHz
UBR10 = 0x03; // 8MHz/9600=833.333... 833 to base 16 = 341
UBR00 = 0x41;
UCTL0 &= ~SWRST; // initialize UART state machine
IE1 |= URXIE0;
}
void sendChar(char c)
{
while(!(IFG1 & UTXIFG0)); //TX buffer ready?
TXBUF0=c;
}
void sendString(char* s)
{
unsigned int n=0;
while(s[n]!='\0')
{
sendChar(s[n]);
n++;
}
}

Die COM einstellungen am Rechner müssen den virtuellen COM Port zum FT232 auswählen und ansonsten auf 9600 8 n 1 eingestellt sein.

Wichtiger Link für die Peripherie des Controllers ist der User Guide.

Dieser Beitrag wurde unter Mikrocontroller, MSP430 abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.