Hi,
ich habe ein Problem beim Senden von Daten via UART.
Target ist ein LPC 2148 von NXP. IDE ist Keil uVision4. Debugger ist
Keil uLink2.
Die Threads die sich hier damit befassen habe ich gelesen, jedoch hat
davon nichts zur Lösung geführt.(Ich hab auch schon andere Code Examples
getestet)
Im Anhang habe ich Screenshots angefügt auf denen man sehen kann das der
UART initialisiert ist. (Screen1)
Dann habe ich das nächste Statement ausgeführt um ein Byte in das TX
Holding Register zu schreiben, wie man jedoch beim Debuggen sieht tut
sich da nichts. (Screen2)
Ich verwende folgenden Code zum Initialisieren und Senden von Daten.
Die Funktion wird in main aufgerufen.
1 | void init_uart (void)
|
2 | {
|
3 | int Divider,i;
|
4 | int Baudrate = 9600;
|
5 |
|
6 | PINSEL0 |= 0x00000005; //RX und TX aktivieren
|
7 | U0FCR = 0x00000007; //Fifo enable
|
8 | U0LCR = 0x00000083; // Divisor latches freischalten
|
9 | Divider = (60000000 /16)/Baudrate;
|
10 | U0DLM = Divider / 256;
|
11 | U0DLL = Divider % 256; //Baud Rate setzen
|
12 | U0LCR = 0x00000003; //Divisor Latches sperren
|
13 |
|
14 | i = 0;
|
15 |
|
16 | while(i<=1000)
|
17 | {
|
18 | U0THR = 'h'; //THR befüllen
|
19 | while (!(U0LSR && 0x60)); //THRE TEMT gesetzt?
|
20 | i++;
|
21 | IOCLR0 = 0xFFFFFFFF;
|
22 | delay(1200000);
|
23 | IOSET0 = 0xFFFFFFFF;
|
24 | delay(1200000);
|
25 | }
|
26 | }
|
Hat jemand eine Idee was ich da falsch mache ?
Vielen Dank schonmal.
Grüße,
Stefan