急用

2019-07-20 23:15发布

STM32F4中使用ADC1进行采样时,如何确定DMA方式下的SRAM的地址啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
likunxue
1楼-- · 2019-07-21 01:55
本帖最后由 likunxue 于 2016-3-28 15:17 编辑

取缓存区首地址直接付值给 DMA就行了
ADC_Buf[SZIE];   //ADC缓存区

  DMA_CHx->CMAR  =   (u32)ADC_Buf      //DMA1,存储器地址         
lishuaiwanm
2楼-- · 2019-07-21 04:31
likunxue 发表于 2016-3-28 15:12
取缓存区首地址直接付值给 DMA就行了

大神,请问芯片内部的SRAM的首地址在哪里查找呀?DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)ADC1_DR_Address   是这样写吗???
likunxue
3楼-- · 2019-07-21 07:50
 精彩回答 2  元偷偷看……
lishuaiwanm
4楼-- · 2019-07-21 10:47
likunxue 发表于 2016-3-28 15:12
取缓存区首地址直接付值给 DMA就行了
ADC_Buf[SZIE];   //ADC缓存区

大神,ADC_Buf[SZIE],这个不用在头文件中声明吧,芯片定义的缓存区就是Buf[SZIE]???  谢谢谢谢
lishuaiwanm
5楼-- · 2019-07-21 11:32
likunxue 发表于 2016-3-28 15:19
你定义的缓存区数组名称就是首地址

那就是我自己定义一个数组的名字和大小,然后数组默认存储在芯片内部的SRAM中?
likunxue
6楼-- · 2019-07-21 14:06
lishuaiwanm 发表于 2016-3-28 15:20
大神,ADC_Buf[SZIE],这个不用在头文件中声明吧,芯片定义的缓存区就是Buf[SZIE]???  谢谢谢谢

你是要取外设ADC的地址或是数据缓存区地址啊! 用DMA完成 ADC转换传输,就需要两个地址嘛
一是你需要保存的数据,转换后的ADC数据, 就是数据缓存区首地址
另一个是 ADC的数据转换寄存器地址, 就是DMA读取的数据的地址

DMA_CHx->CPAR  = (u32)&ADC1->DR;                //DMA1 外设地址

一周热门 更多>