MSP430 UART1 und SPI0 Initialisierung

Gast #983392
Lesenswert?
• ▲
▼
Hallo,
ich habe ein Problem mit dem UART1 und dem SPI0 des MSP430F149. Hier mal 
der c-Code:
1
void init_spi0(void)
2
{
3
  ME1 |= USPIE0;                        // Enable USART0 SPI mode
4
  UTCTL0 = CKPH+SSEL1+SSEL0+STC;        // SMCLK, 3-pin mode
5
  UCTL0 = CHAR+SYNC+MM;                 // 8-bit SPI Master **SWRST**
6
  UBR00 = 0x02;                         // UCLK/2 
7
  UBR10 = 0x00;                         // 0
8
  UMCTL0 = 0x00;                        // no modulation
9
  P3SEL |= 0x0E;                        // P3.1-3 SPI option select
10
  P3DIR |= 0x01;                        // P3.0 output direction
11
}
12

13
void init_uart1(void)
14
{
15
  P3SEL = 0xC0;                         // P3.6,7 = USART1 TXD/RXD
16
  ME2 |= UTXE1 + URXE1;                 // Enabled USART1 TXD/RXD
17
  UCTL1 |= CHAR;                        // 8-bit character, SWRST=1
18
  UTCTL1 |= SSEL0;                      // UCLK = ACLK
19
  UBR01 = 0xCC;                         // 9600 from 1Mhz
20
  UBR11 = 0x04;                          
21
  UMCTL1 = 0x4A;                        // Modulation
22
  UCTL1 &= ~SWRST;                      // Initialize USART state machine
23
 }
24

25
void main(void)
26
{
27
  ....
28

29
  init_spi0();                            // Init SPI0
30
  init_uart1();
31
  ....

so jetzt zu meinem Problem. Nachdem ich den UART1 initialisiert habe, 
funktioniert der SPI0 nichtmehr. D.h. er sendet nicht mehr. Durch Zufall 
hab ich herausbekommen, dass wenn ich zuerst den UART1 initialisier und 
dann den SPI0 das es dann funktioniert. Ich kann dann mit beiden 
Schnittstellen senden und empfangen, so wie es sein sollte. Jetzt kann 
man natürlich sagen, ich sollte zufrieden sein aber rein 
interessenhalber würde mich das mal interessieren, warum

  init_spi0();                            // Init SPI0
  init_uart1();

nicht geht und

  init_uart1();
  init_spi0();                            // Init SPI0

geht. Ist da ein Fehler in der Initialisierung? Ich siehs einfach nicht.

Kann mir da jemand helfen....
Danke und Grüße

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.