Hey Leute, hat schonmal jemand die Daten die vom USART empfangen werden per DMA weiter verarbeitet, also in eine Variable/Array gespeichert? Also das Senden von Zeichen per DMA funktioniert wunderbar, nur das Empfangen will einfach nicht klappen. Ich lasse mir jede Sekunde von HTerm die Zahl 123 an den STM32 schicken und der "Receive Data register not empty interrupt" lässt eine LED blinken. Das funktioniert auch. Anschließend lasse ich die Zahl 123 über den USART auch wieder ans HTERM zurückschicken, es kommt aber nichts an. Zum signalisieren ob der DMA überhaupt irgendwas verarbeitet soll sobald der "Streamx transfer complete interrupt" ausgelöst wird ebenfalls eine LED blinken, diese tut es aber nicht. Daher denke ich, dass ich irgendwas falsch eingestellt haben muss. Im Anhang gibt es den Code. Ja der sieht noch nicht so toll aus, ist noch in arbeit. Sollte aber zum Verständnis reichen.
Hi, Versuche mal die Stream/Channel Konfiguration wie angegeben im Reference Manual. Also konkret fuer Dich beim USART3: Fuer RX: Stream1 Ch4 und TX: Stream 3 Ch4. Auch wenn im Manual steht, dass das nur als Beispiel sei, hats bei mir erst mit dieser Auswahl geklappt. Intuitive Sache. Cheers, Philipp
Philipp schrieb: > Versuche mal die Stream/Channel Konfiguration wie angegeben im Reference > Manual. Also konkret fuer Dich beim USART3: Fuer RX: Stream1 Ch4 und TX: > Stream 3 Ch4. Auch wenn im Manual steht, dass das nur als Beispiel sei, > hats bei mir erst mit dieser Auswahl geklappt. Intuitive Sache. Zufall das ich hier nochmal reinschaue :D Das Problem habe ich inzwischen gelöst gehabt. Die von dir vorgeschlagene Einstellung habe ich auch drin ... Geändert habe ich den Betrieb auf Circular und Buffer als Array. Funktioniert gut mit dem Empfangen :) Nochmal in meinen Code geschaut: Keine Ahnung warum ich da noch die falsche Einstellung drin habe, macht gar keinen Sinn. Gar nicht gesehen gehabt ... Muss sich beim zusammenkopieren der Fehlerteufel eingeschlichen haben. Kein Wunder, dass es keine Antwort gab ^^
Hallo, könntest du den funktionierende Code hier posten ? Ich habe das gleiche Problem mit der USART3 und DMA.
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.