STM32F4 DMA UART RX

Gast #4353361
Lesenswert?
• ▲
▼
Hallo,

ich sende einem STM32F4 mittels UART Telegramme.
Die Empfangenen Daten werden mittels DMA in ein Array abgelegt.

Der DMA ist wie folgt konfiguriert:
Mode: Circular
Data Width Byte/Byte
kein FIFO
1
char uart_rx[16];
2
HAL_UART_Receive_DMA(&huart1, (uint8_t*)&uart_rx[0], 16);

Wenn 16 Zeichen empfangen wurden wird wieder uart_rx[0] überschrieben.
soweit so gut!


Die vom STM32 zu empfangeneden Daten haben am ende ein CR oder LF.
Ist es möglich den "DMA pointer" bei erhalt eines CR oder LF auf 
uart_rx[0] zurückzusetzen?

irgendwie so:?
1
uint8_t i;
2
for (i=0; i<16; i++){
3
   if (uart_rx[i] == '\r'){
4
      DMA pointer = &uart_rx[0];
5
   }
6

7
}
Gast #4353409
Lesenswert?
• ▲
▼
>Ist es möglich den "DMA pointer" bei erhalt eines CR oder LF auf
>uart_rx[0] zurückzusetzen?

Das ist unsinnig. Wenn Du sowieso eine Schleife über den Buffer laufen 
lässt, kannst Du auch gleich den Inhalt wegkopieren/verarbeiten.
Und auf DMA könntest Du gleich ganz verzichten.
#4353446
Lesenswert?
• ▲
▼
Es kommt auf den genauen Einsatz an, aber ich denke nicht, dass der DMA 
des STM32F4 dafür Sinnvoll ist. Hier hilft nur ein Datentransfer mittels 
Software.

Schau dir mal die PIC32 an. Hier hat der DMA einen "DMA Pattern Data 
Register", der den DMA-Transfer stoppt, sobald ein spezielles Byte 
transferiert wurde.

Mehr infos hier:
http://ww1.microchip.com/downloads/en/DeviceDoc/60001117H.pdf
auf Seite 31

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.