Hallo alle miteinander, ich habe ein kleine Application auf Basis eines LPC2220 Mikrocontroller. In dieser Anwendung ist es nötig die Baudrate beliebig vom UART0 im Programm verlauf zu ändern. Ansich nicht kompliziert aber es funktioniert trotzdem nicht hierzu einen Ausschnitt aus dem Code um mein Problem zu erläutern: Gleich nach dem Startup führt der Controller folgendes aus und setzt die Baudrate by default auf 38400. // PCLK // Baudrate = ------------------------------------------------- // 16 * (256 * DLM + DLL) * (1 + DivAddVal/MulVal) U0LCR = 0x83; U0DLL =30; //38400 Baud U0DLM = 0; U0LCR = 0x03; Die Register UODLL und U0DLM stellen in diesem Fall die Baudrate auf 38400 Baud. Bis hierhin klappt das der UART arbeitet mit 38400 Baud. Später im Programmverlauf will ich die Baudrate auf 19200 umstellen und mach folgendes: U0DLL =60; // 19200 Baud U0DLM = 0; Leider Funktionierts ab hier nicht mehr das heisst der UART arbeitet einfach weiterhin mit 38400 Baud. Ich hab alles versucht aber ich kann die Baudrate nicht im Programmverlauf ändern. Wenn ich die Register U0DLL und U0DLM auslese steht 0x00 drin. Ich würde mich freuen wenn jemand zu diesem Problem ein paar neue Denkansätze liefern könnte
Hallo Johann, Du solltest zum Verändern der Baudrate immer auch das bit im LCR Register setzen, nur so hast Du Zugriff auf die Baudraten-Register. Verwende doch einfach die Sequenz, die Du auch am Anfang verwendest. Gruß Microman
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.