Hello
I am working on a project that uses the dma to move data from program memory to peripherals...the example I am looking at set the dma address gpioe address offset 0x15...I notice that the stm manual list the odr offset address as 0x14...what are offsets 0x15, 0x16, 0x17...the example has the data show up on gpioe 8 thr 15...how do you set different gpio pins and do the pins have to be consecutive (8 thr 15) or can you set the dma data to use 4,6,8,10,12,13,14,15 pins
That makes sense...thank you
If you use the dma to sent data (8 bits parallel) from the memory to peripheral do the gpio pins need to be in consecutive order (0 thr 7 or 8 thr 15)...or can you assign pins at random order (1,5,6,8,11,12,14,15 etc)? Or on different ports gpioa pins 1,5,11,12 and gpiob 5,10,12,15 for example.
Dma-Base-addr = gpioa
DMA writes are just like any other, there is no bit swizzling functionality, or writing to disparate addresses.
You could create complex patterns using the BSRR, but you'd have to create those ahead of time in a buffer, with each being 32-bit wide.
Thanks again...I have another question
So if I want to use the dma to place data (16 bits) from the memory to gpioe...what would the dmabaseaddr be...4002-1014 on the f407 chip..and would that write to all sixteen pins on the gpioe port
(uint32_t)&GPIOE->ODR; // Address of GPIO E output data register