STM32: Umsetzung der UART im DMA-Modus

Bin ich versucht zu implementieren UART im DMA-Modus zu übertragen-eine einfache Zeichenfolge jedes mal, wenn ein Taster gedrückt wird.

So, das ich verwendet habe CubeMX um den code zu generieren und ich habe so konfiguriert UART2 TX DMA in den normalen (nicht kreisförmig) Modus und auch kein FIFO-und nicht platzen.

Immer wenn ich den code im debug-Modus sehe ich das erste mal, dass ich Versuch zum senden der Zeichenfolge, es funktioniert ok und sendet die Zeichenfolge, sondern innerhalb der DMA-IRQ-handler ruft es TxHalfCpltCallback und nicht TxCpltCallback und auch UART gState bleiben im BESCHÄFTIGT-Modus, so kann ich es nicht verwenden, zu übertragen, nicht mehr string.

Meine Frage ist, warum ruft er TxHalfCpltCallback und nicht TxCpltCallback? und wie sollte ich damit umgehen (wegen HAL-Referenz sagt, es wartet für die Zusendung der zweiten Hälfte des Puffers! was?)

Und auch, würde das senden der nächsten Hälfte der Daten relase die gState der UART?

Ich würde Sie gerne Fragen, wie jemand zu geben uns ein Beispiel der Konfiguration der UART in einem Projekt.

InformationsquelleAutor Nixmd | 2017-04-08

Schreibe einen Kommentar