Hallo zusammen,
ich verwende einen Stm32G431, mit dem ich über einen der USARTs ein Paket (16-32 Byte) per DMA sende. Der Timer liefert einen Interrupt (alle 5ms), die ISR setzt im wesentlichen die DMA-Parameter wie den Puffer, aus dem die Daten kommen. Es gibt zwei Puffer, weil die Daten zu einem beliebigen Zeitpunkt vom restlichen Code geändert werden kann. Am Ende des DMA-Transfers gibt es wieder einen Interrupt. Funktioniert soweit.
Ich frage mich, ob man nicht auf den Interrupt des Timers verzichten kann.
Dann müsste der Timer den Event liefern, damit der DMA-Transfer beginnt. Anschließend muss dann der USART die weiteren Transfers initiieren. Der Interrupt am Ende des DMA-Transfers sollte bleiben.
Das würde ja bedeuten, dass ein DMA-Channel mit mehreren unterschiedlichen Input-Events verbunden wird.
Vielleicht hat ja jemand einen Tipp dazu.