Gast
#347631
Ich versuche mit hilfe dieses Codes: http://www.mikrocontroller.net/articles/ARM-elf-GCC-Tutorial#UART den UART0 im LPC2214 zu verwenden, um einzelne Zeichen an einen PC zu senden und im Terminalfenster darzustellen. Dabei erscheinen statt der gewünschten Zeichen meist 'x' oder selten Hieroglyphen. Die Oszillatorfrequenz ist 12 MHz (als "#define FOSC 12000000" angepaßt), die Baudrate sollte 9600 betragen. Allerdings lese ich am Oszilloskop eine tatsächliche Baudrate von ca. einem Viertel der gewünschten 9600 Baud ab. Dies erklärt sich wohl dadurch, dass der PCLK defaultmäßig PCLK=CCLK/4 beträgt. Aber auch PCLK=CCLK zu setzen (mit "SCB_VPBDIV = 1;") oder den Faktor 4 im divisor latch register zu berücksichtigen: // Untere 8 bit des Teilers UART0_DLL = (CCLK / (4*baud*16)) & 0xFF; // Obere 8 bit des Teilers UART0_DLM = ((CCLK / (4*baud*16)) & 0xFF00)>>8; ändert die Baudrate nicht. Was mache ich falsch? Ist es möglich, dass 9600 Baud für gewisse Kombinationen von CCLK/PCLK/FCCO nicht erreicht werden können, so dass der Wert im UART0_DLx nicht akzeptiert wird? Spielen die UART Interrupts eine Rolle (sollten defaultmäßig disabled sein)? Herbert