cancel
Showing results for 
Search instead for 
Did you mean: 

Move data into GPIOx_BSRR by DMA?

sima2
Associate III
Posted on April 23, 2018 at 20:33

I'm using SMT32F429.

I want to move 32 bit data from memory into GPIOx_BSRR by DMA and use a timer as trigger.

I tried to setup DMA1 Stream 4 channel 1 (TIM7_UP). And I setup Timer7. But I end upp getting Stream 4 transfer error interrupt flag set. DMA_SxNDTR only counts down one time.

And now I read that it is only DMA2 that can write to GPIO registers. Can this be why I fail?  Where can I confirm that informaton?

#stm32 #dma
1 REPLY 1
Posted on April 23, 2018 at 22:33

You need to use DMA2 based on the memories you expect to be touching, it is covered in the Reference Manual if you pay attention to the details and notes.

It is a function of how the assorted buses connect, and inter-connect, with each other, basically a plumbing issue.

Tips, buy me a coffee, or three.. PayPal Venmo Up vote any posts that you find helpful, it shows what's working..