Hallo zusammen, ich hab ein kleines Problem mit einem STM32F746BGT µC. Genutzt wird hier die CubeIDE mit dem V1.17.3 Firmware Package. Ein älteres Package hat das Problem nicht behoben. Die Anforderung ist eine UART Kommunikation mit 8Bit Daten, Parität Gerade, 1 Stop Bit und einer Baudrate von 9600. Beim STM ist es wohl so, dass man bei einem zusätzlichen Paritätsbit eine Datenbereite von 9 Bit einstellen muss. ....Hat leider nichts gebracht Das Signal kommt am µC ordentlich an. Ich hab den Pegel mit dem Oszilloskop gemessen und der Logic Analyzer hat auch kein Problem das Signal an der Stelle zu dekodieren. Die Daten die am µC ankommen lese ich per Interrupt ein. Wenn er nicht wegen einem Framing Error im HAL_UART_ErrorCallback landet, sondern im HAL_UART_RxCpltCallback dann wurde trotzdem nur Müll empfangen. Hat jemand schonmal ein ähnliches Problem gehabt und hat einen Tipp für mich? Ich hab mal ein paar Bilder aus der Konfiguration angehängt. Gruß Fabian
:
Bearbeitet durch User
Fabian W. schrieb: > und einer Baudrate von 9600. Passt nicht zusammen mit: huart7.Init.BaudRate = 19200; (aus Screenshot) mfg KvD
Wenn Du ein oszi hast, dann immer probeweise senden (0xaa bzw 0x55). Und ohne oszi auch, nur dann 0xe0 und am PC ohne parity mitlesen
:
Bearbeitet durch User
Moin, >Passt nicht zusammen mit: >huart7.Init.BaudRate = 19200; (aus Screenshot) ja, da muss ich dir vollkommen recht geben. Ist leider im Screenshot falsch. Ich hatte kurz vorher im Initialisierungs Ablauf ein bisschen mit den UART Registern noch rum gespielt. Damit das aber wieder ordentlich ist, habe ich den Code Generator nochmal laufen lassen und da war mir wohl nicht aufgefallen, dass dort noch die Falsche Baudrate eingestellt war. Die hatte ich zuvor händisch angepasst. Das Empfangen habe ich trotzdem mal mit 19.2k und 9600 probiert. Bei beiden Baudraten das selbe problem. Gruß Fabian
:
Bearbeitet durch User
Harald K. schrieb: > Warum nur wird Quelltext als Screenshot gepostet? Damit die Hilfsbereitschaft maximal gebremst wird, weil ihn niemand schnell mal eben selber in seiner IDE überprüfen kann. Am besten solche Anhänge gleich in /dev/null ablegen.
Georg S. schrieb: > Datenbreite auf 9 bit setzen und Parität selber berechnen? Eine UART, die das braucht, ist Müll. Das konnten UARTs schon vor 50 Jahren, siehe z.B. Motorola 6850 oder NSC 8250.
Georg S. schrieb: > Datenbreite auf 9 bit setzen und Parität selber berechnen? Erzähl mal noch einen vom Pferd.
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.