stm32f072 Wie UART TX -> DMA über Timer triggern

Gast #4517546
Lesenswert?

Hallo,

ich will auf einem STM32F072 Daten über die SIO senden.
Ich habe mal gelesen das man den DMA durch einen Timer Triggern kann.
Das ganze soll dazu dienen das ich nicht alles direkt hintereinander 
senden will, sondern eine definierte Pause zwischen den Bytes brauche.

Irgendwie finde ich aber gerade nicht raus wie ich den DMA mit dem Timer 
triggern kann.

Über einen Tipp wäre ich dankbar.

VG, Uli
#4518698
Lesenswert?

@  Uli (Gast)

>Was glaubst Du woran ich gerade scheitere?

Keine Ahnung.

>Entweder ich überlese das ständig oder ....!

Hörbuch kaufen!

http://www2.st.com/content/ccc/resource/technical/document/reference_manual/c2/f8/8a/f2/18/e6/43/96/DM00031936.pdf/files/DM00031936.pdf/_jcr_content/translations/en.DM00031936.pdf

Seite 196ff

Seite 199 "Channel configuration procedure"

Der Trigger heißt dort "peripherial event", es gibt auch einen 
Beispielcode, allerdings zeigt der nix zum Thema Trigger per Timer 8-(

Seite 202.

"The peripheral DMA requests can be independently activated/de-activated 
by programming the DMA control bit in the registers of the corresponding 
peripheral."

Wenn also dein Timer die DMA auslösen soll, muss im Timer das Event 
freigeschaltet werden.

Also schauen wir mal beim Timer TIM1 vorbei.

Seite 355, "TIM1 DMA/interrupt enable register (TIM1_DIER)"

Dort kann man festlegen, welches Event des Timers einen DMA-Transfer 
auslösen soll. UDE ist dein Bit, das du suchst.
Gast #4518812
Lesenswert?

Man gebe mir eine Brille!
Ja ein Hörbuch, am besten noch mit hinweisen,  hätte da wohl geholfen.

Das hatte ich immer überlesen und dann teilweise noch falsch verstanden 
was die wollen.

Jetzt wo Du mich direkt darauf stößt ist alles klar und mein Code so gut 
wie fertig.

Danke, Uli

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren