Hallo, gerade verzweifle ich an einem Problem mit dem UART ich auf meinem L452 Nucleo Board. Es werden Daten übertragen, jedoch ist irgendwo ein Bitfehler. Das heißt ich zähle eine Variable hoch und sende diese über UART. Dabei habe ich ab dem Wert 0x08 einen Offset zu um 0x10 drin. Sprich ich zähle hoch (hex) 0x06, 0x07, 0x18, 0x19,... Die Hardwareconfig habe ich mir von Cube-MX ausspucken lassen. Interessanterweise funktioniert das ganze z.B. auf einen L476 problemlos mit den selben UART-Einstellungen. Daher schließe ich einen groben Programmierfehler meinerseits aus. Meine Vermutung wäre nun irgendwo ein Fehler in den Treibern. Daher die Frage, ob jemand von euch schonmal ein ähnliches Problem mit einem solchen Bitoffset hatte? Und falls ja, wo genau das Problem lag und wie ihr es lösen konntet.
Hm gut zu wissen, ist teste es gleich mal aus. Meine im Datenblatt UART2 gelesen zu haben...
Ok, habe es getestet, leider ohne Erfolg. Sowohl im Projekttemplate als auch im Datenblatt des Nucleo L452RE steht der UART2. auf dem LPUART1 kann cih ncihts über VCP empfangen.
Laufen beide MCUs mit HSE? Mit welcher Bitrate bist du unterwegs? Rechne ggf. nach ob deine Wunschbitrate genau einstellbar ist.
Der Cube stellt gerne standardmässig 7bit ein. Könnte eventuell das Problem sein ...
Nucleo-L452P : Com port ist LPUart1 Mucleo-L452: Comport ist USART2
Über die 7bit bin ich auch schon häufiger gestolpert, aber da liegt nicht as Problem. Ich grenze den Fehler derzeit auf die HAL_UART_Transmit(_IT) Funktion ein. Denke mal, dass dort irgendwo zwischen der Übergabe des *data Pointers und de Schreibens des data values in das transmit Register liegt. Nur wie ich hier wieter vorgehe weiß ich leider nicht :D
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.