cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F101x4 DMA PeripheralBaseAddr

jgalea
Associate II
Posted on January 29, 2009 at 04:13

STM32F101x4 DMA PeripheralBaseAddr

This discussion is locked. Please start a new topic to ask your question.
2 REPLIES 2
jgalea
Associate II
Posted on May 17, 2011 at 13:01

Hello, Please I would like to know what is the DMA base address to be used with STM32F101x4:

DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)ADC1_BASE;//ADC1_DR_Address;//0x40012444C;

When I used 0x40012444C, DMA2 was addressed and not DMA1. With ADC1_BASE DMA1 is addressed but I'm not getting the ADC result from the array. I know that ADC is being done. Once ok, I will place all my code on this forum. Thanks Johann (STM32F101x4)

jgalea
Associate II
Posted on May 17, 2011 at 13:01

Hello again. DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)ADC1_DR_Address

(u32)ADC1_DR_Address should be set as follows. Take the base address of ADC1, i.e. (u32)ADC1_BASE. Then need to add an offset of 19 32-bit registers, i.e. 19 * 4 bytes = 76d= 0x4C. 19 because there are 19 registers associated with ADC1 and the result is the last one. By definition, ADC1_BASE = (APB2PERIPH_BASE + 0x2400); APB2PERIPH_BASE = (PERIPH_BASE + 0x10000); PERIPH_BASE = ((u32)0x40000000). Adding these numbers together, the base address should be 4001244C. This is where the number is obtained. It is used in examples but not clear from where it is obtained.

Announcement

We’re moving the ST Community to a new platform to give you a better and more reliable community experience.