UART Programmierung bei ARM LPC2138

Gast #622538
Hallo!

Ich versuche den UART0 bei einem LPC2138 ein zu richten. Leider bekomme 
ich entweder keine, oder keine Sinnvolle Ausgabe auf das Terminal.

Ich verwende das Embedded Artist QuickStart Board.

Hier mein Code:
1
#include <LPC213x.h>
2

3
int main( void ) 
4
{
5

6
  // Pins auf UART Funktion schalten  
7
  PINSEL0 = (PINSEL0 & 0xfffffff0) | 0x00000005;
8
  // PLL einstellen  
9
  PLLCFG = (4-1)|((2-1)<<5); // M=4 und P=2 (Multiplikatoren von 0 sind nicht erlaubt)
10
  PLLCON = 0x01; // PLL aktivieren
11
 
12
  PLLFEED = 0xAA;  //PLL Feed-Sequenz
13
  PLLFEED = 0x55;
14
  while ( !( PLLSTAT & (1<<10) ) ); // Auf PLOCK warten 
15
  
16
  MAMTIM = 3; 
17
  
18
  VPBDIV = 1;
19
 
20
  PLLCON = 0x03; // PLL aktivieren und mit dem internen Taktgeber verbinden
21
  PLLFEED = 0xAA;  //PLL Feed Sequence
22
  PLLFEED = 0x55;
23
  
24
  // UART0 Initalisieren
25
  U0LCR  = 0x80;                // enable access to Divisor Latches
26

27
  U0DLL = 0x20;                // PCLK = CCLK @ 58,9225 MHz
28
  U0DLM = 0x00;                // divider is 32; desired baud rate = 115200, real baud rate 115083
29
  
30
  U0LCR = 0x00;                // disable access to Divisor Latches
31
  U0LCR = 0x03;                // 8 bit, 1 Stop bit, keine parity
32
  
33
  U0FCR = 0x00;                //reset FIFO
34
  U0IER = 0x00;                //clear interrupt bits
35

36
  U0FCR = 0x07;                //enable UART0 FIFO
37
  U1FCR = 0x07;                //enable UART1 FIFO
38

39
  // 'a' auf UART0 ausgeben
40
  while( 1 ){                // Endlos-Schleife
41
      while (!(U0LSR & (1<<5))) continue; // Warten, bis der Sendepuffer geleert ist
42
 
43
    // Neuen Wert in das "Transmitter Holding Register" schreiben
44
    U0THR = (char)'a';
45
  }
46
  return 0;
47
}

Ich bin für jeden Vorschlag offen.
Gast
Beispielprogramm UART:
http://www.standardics.nxp.com/support/documents/microcontrollers/pdf/an10369.pdf
Ist zwar fuer den LPC2106 geschrieben aber sollte genauso auf dem 
LPC2138 laufen. NXP hat ein sogenanntes Familienkonzept, Code kann sehr 
haeufig von kleineren Bausteinen uebernommen werden in der LPC2000 
Familie.

Weitere Beipielprogramme:
http://www.standardics.nxp.com/support/documents/microcontrollers/zip/code.bundle.lpc213x.lpc214x.uvision.zip

Eine Liste mit Hilfreichen Dokumenten  Programmen  Application Notes 
ist hier: 
http://www.standardics.nxp.com/support/documents/microcontrollers/all/?scope=LPC2138

Robert

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.