stm32DMA外设地址计算问题

2315862   2010-3-10 10:35 楼主
                                 请教下DMA外设地址计算是怎么出来的,比如ADC1,采用DMA1 通道5,那么ADC1的数据寄存器地址是怎么出来的,查询了下官方手册,感觉和例子的对应不上,不知道是手册的问题,还是我的理解有问题,希望大家能给个满意的答复(能给出公式),谢谢

回复评论 (5)

查询了下官方手册,感觉和例子的对应不上

请问看的是什么手册?如何对应不上?你是如何理解的?
点赞  2010-3-10 10:43
比如我在看一个实验例子里写到:#define DAC_DHR12RD_Address      0x40007420
DMA_DeInit(DMA2_Channel4);
  DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12RD_Address;
按照手册上说的外设地址计算0x10+20d(通道号-1)么?
然后DAC的基地址为0x40007400,我就郁闷了结果不对么?
点赞  2010-3-10 10:47
                                 官方的最新的103x手册,我的103ze的
点赞  2010-3-10 10:49
按照STM32参考手册的说明,DAC_DHR12RD的偏移地址是0x20,再加上DAC寄存器组的起始地址0x40007400,刚好是0x40007420。

你看错了地方了吧?

STM32_DAC_DHR12RD_Reg.GIF (15.16 KB)

点赞  2010-3-10 11:08
                                 哥哥,谢谢你,我恍然大悟了,我的语文没学好,原来这个就是地址啊,我以为外设的地址要通过dma那个计算公式出来的,原来是芯片里做死的啊
点赞  2010-3-10 11:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复