DMA funktioniert nur einmal

Gast #5073161
Hallo

Ich habe eine Frage zur DMA und zwar habe ich den Chip STM32L431RCI6.
Ich habe den Fall, dass ich über einen Timer den ADC triggere (1027 
Pulse) und mit der DMA die Daten wegschaufele.
Der ganze Prozess so funktioniert auch und die Daten werden konvertiert. 
Diese werden auch durch die DMA einmal in den Speicher gelegt.
Wenn ich den Prozess aber nochmals durchführe, sprich den ADC ein 2. Mal 
triggere (1027) Pulse, ändern sich die Daten im Speicher nicht mehr..
Ich würde meinen, dass ich den ADC und die DMA aber richtig konfiguriert 
hätte.
Was habe ich übersehen?

Ich danke für eure Hilfe
Angehängte Dateien:
Gast #5074741
Nils Z. schrieb:
> Versuchs mal mithadc1.Init.DMAContinuousRequests = ENABLE;
> hadc1.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;

Ich habe die Einstellungen nun vorgenommen, die Werte im Memory 1 im 
Debugger ändern sich trotzdem nicht..
Liegt es vielleicht doch an den DMA Einstellungen?
#5075351
Irgendwie sehe ich in deinem Code nicht, wie du den ADC wieder startest.

Ich konfiguriere bei mir den DMA, dann den ADC. DMA mit transfer 
complete interrupt. Wenn der auslöst, dann lösche ich das DMA und 
CONT-bit beim ADC.

Bei einem Neustart muss ich dann DMA, CONT und SWSTART-bit setzen. Wie 
das mit der HAL geht kann ich aber nicht sagen.
Gast #5075864
Nico W. schrieb:
> Irgendwie sehe ich in deinem Code nicht, wie du den ADC wieder
> startest.
>
> Ich konfiguriere bei mir den DMA, dann den ADC. DMA mit transfer
> complete interrupt. Wenn der auslöst, dann lösche ich das DMA und
> CONT-bit beim ADC.
>
> Bei einem Neustart muss ich dann DMA, CONT und SWSTART-bit setzen. Wie
> das mit der HAL geht kann ich aber nicht sagen.

Hallo

Ich habe das im Main im nach dem Init drin. Zeile 259.
Ich starte den ADC nur einmal vorerst.
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.