请教下DMA外设地址计算是怎么出来的,比如ADC1,采用DMA1 通道5,那么ADC1的数据寄存器地址是怎么出来的,查询了下官方手册,感觉和例子的对应不上,不知道是手册的问题,还是我的理解有问题,希望大家能给个满意的答复(能给出公式),谢谢
查询了下官方手册,感觉和例子的对应不上
请问看的是什么手册?如何对应不上?你是如何理解的?
比如我在看一个实验例子里写到:#define DAC_DHR12RD_Address 0x40007420
DMA_DeInit(DMA2_Channel4);
DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12RD_Address;
按照手册上说的外设地址计算0x10+20d(通道号-1)么?
然后DAC的基地址为0x40007400,我就郁闷了结果不对么?
按照STM32参考手册的说明,DAC_DHR12RD的偏移地址是0x20,再加上DAC寄存器组的起始地址0x40007400,刚好是0x40007420。
你看错了地方了吧?
-
-
STM32_DAC_DHR12RD_Reg.GIF
(15.16 KB)
哥哥,谢谢你,我恍然大悟了,我的语文没学好,原来这个就是地址啊,我以为外设的地址要通过dma那个计算公式出来的,原来是芯片里做死的啊