DMA Stm32 Usart

Gast #4646370
Lesenswert?
• ▲
▼
Hallo,

ich wollte mein Counter vom DMA Stream resetten oder auf ein bestimmten 
Wert schreiben, ohne den Stream neu zu initialiseren.

Ich mache es aktuell so:

// Dma deaktivieren.
DMA_Cmd(Handle->usart_board->ReceiverDmaStream, DISABLE);

// Flags löschen.
USARTGetDma( Handle->usart_board->ReceiverDmaStream )->LISR = 
0x00000000;
USARTGetDma( Handle->usart_board->ReceiverDmaStream )->HISR = 
0x00000000;
USARTDmaClearAllFlags( Handle->usart_board->ReceiverDmaStream );

// Counter umsetzen auf die übergebene Anzahl.
DMA_SetCurrDataCounter(DMA2_Stream6, (uint16_t) (Handle->rxSize));

// Dma wieder aktivieren
DMA_Cmd(Handle->usart_board->ReceiverDmaStream, ENABLE);

_________________________________________________________
Handle->usart_board->ReceiverDmaStream ist mein aktueller DMA Stream.
Handle->rxSize ist meine aktuelle Size auf die der Counter vom DMA 
gesetzt werden soll.
Die Funtkion "USARTDmaClearAllFlags" löscht die Flags DMA_FLAG_FEIFx, 
DMA_FLAG_DMEIFx, DMA_FLAG_HTIFx und DMA_FLAG_TCIFx Flag von dem 
jeweiligen DMA Stream.

Aktuell ist mein Problem, dass der DMA Stream manchmal nicht gleich 
wieder aktiviert wird und das ich vom USART ein OverRun Error bekomme.

Könnt Ihr mir vielleicht helfen wo mein Fehler ist?
#4646378
Lesenswert?
• ▲
▼
z.b. hier:
"If the stream is enabled, disable it by resetting the EN bit in the 
DMA_SxCR register, then read this bit in order to confirm that there is 
no ongoing stream operation. Writing this bit to 0 is not immediately 
effective since it is actually written to 0 once all the current 
transfers have finished. When the EN bit is read as 0, this means that 
the stream is ready to be configured."

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.