打印

stm32 DMA外设地址计算问题

[复制链接]
7860|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
请教下DMA外设地址计算是怎么出来的,比如ADC1,采用DMA1 通道5,那么ADC1的数据寄存器地址是怎么出来的,查询了下官方手册,感觉和例子的对应不上,不知道是手册的问题,还是我的理解有问题,希望大家能给个满意的答复(能给出公式),谢谢
沙发
香水城| | 2010-3-10 10:43 | 只看该作者
查询了下官方手册,感觉和例子的对应不上

请问看的是什么手册?如何对应不上?你是如何理解的?

使用特权

评论回复
板凳
dotaallstar|  楼主 | 2010-3-10 10:47 | 只看该作者
比如我在看一个实验例子里写到:#define DAC_DHR12RD_Address      0x40007420
DMA_DeInit(DMA2_Channel4);
  DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12RD_Address;
按照手册上说的外设地址计算0x10+20d(通道号-1)么?
然后DAC的基地址为0x40007400,我就郁闷了结果不对么?

使用特权

评论回复
地板
dotaallstar|  楼主 | 2010-3-10 10:49 | 只看该作者
官方的最新的103x手册,我的103ze的

使用特权

评论回复
5
香水城| | 2010-3-10 11:08 | 只看该作者
按照STM32参考手册的说明,DAC_DHR12RD的偏移地址是0x20,再加上DAC寄存器组的起始地址0x40007400,刚好是0x40007420。

你看错了地方了吧?

STM32_DAC_DHR12RD_Reg.GIF (15.16 KB )

STM32_DAC_DHR12RD_Reg.GIF

使用特权

评论回复
6
dotaallstar|  楼主 | 2010-3-10 11:11 | 只看该作者
哥哥,谢谢你,我恍然大悟了,我的语文没学好,原来这个就是地址啊,我以为外设的地址要通过dma那个计算公式出来的,原来是芯片里做死的啊

使用特权

评论回复
7
micheal0311| | 2011-11-17 09:44 | 只看该作者
终于搞明白了。

使用特权

评论回复
8
会会| | 2017-1-9 10:06 | 只看该作者
香水城 发表于 2010-3-10 11:08
按照STM32参考手册的说明,DAC_DHR12RD的偏移地址是0x20,再加上DAC寄存器组的起始地址0x40007400,刚好是0 ...

你好,可以把你用的STM32的数据手册的PDF发一下吗?偏移地址我没有找到,多谢了,172538999@qq.com

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

57

帖子

1

粉丝