你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何让STM32F4的DMA传输目的地址递增问题

[复制链接]
quzhanguang-337 提问时间:2013-12-12 16:52 /
 在用F407Discovery做外部高速ADC实验,把外部AD的转换结果,通过DMA传输到内存中,使用外部时钟来触发DMA。
把200次的转换结果储存到一个数组中。传输长度设置为为200,储存器地址递增。


问题是每触发一次DMA,DMA都会把同一个转换结果,传输到数组中,数组的里面都是同一个结果。也就是说DMA是触发一次,就完成了200次传输,结果如下图。
  QQ截图20131212135330.jpg


如果希望,触发一次DMA,传输一次结果。结果是内存地址不能递增,每次结果都储存在了数组中的第一个元素。
结果如下图
 
QQ截图20131212140009.jpg

请教大神们,怎么设置DMA才能触发一次传输一次转换结果,每次传输的目的地址递增,把200个不同时刻AD的转换结果储存到数组中





呢?
<
收藏 评论11 发布时间:2013-12-12 16:52

举报

11个回答
quzhanguang-337 回答时间:2013-12-12 17:14:16

RE:如何让STM32F4的DMA传输目的地址递增问题

顶起啊,别沉了
fengye5340 回答时间:2013-12-13 09:37:46

RE:如何让STM32F4的DMA传输目的地址递增问题

1--开启内存递增模式。
   DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable
2--关闭DMA循环模式,采用正常模式
   DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
   你的要求中,用循环模式会出现上面的结果。
3--200次时钟触发采用一个计数器控制
这个前提是,你的 DMA_InitStructure.DMA_BufferSize =1.
目标内存:DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&amp;b,
中,b是个数组指针
有缘于你 回答时间:2013-12-13 11:48:24

RE:如何让STM32F4的DMA传输目的地址递增问题

用DMA_Mode_Normal模式
quzhanguang-337 回答时间:2013-12-13 13:18:43

回复:如何让STM32F4的DMA传输目的地址递增问题

 楼上两位的方法试过,确认不可行
fengye5340 回答时间:2013-12-13 14:25:17

回复:如何让STM32F4的DMA传输目的地址递增问题

回复第 5 楼 于2013-12-13 13:18:43发表:
 楼上两位的方法试过,确认不可行
 

在每次DMA中断中,都需要重新配置DMA的,楼主把代码贴上来看看
jerryh 回答时间:2014-1-6 15:53:02

RE:如何让STM32F4的DMA传输目的地址递增问题

你的问题解决得怎样了?我最近也在弄,到时直接读取DMA的值,总是为0,能发我个你的程序参考下吗?1061827991@qq.com
徐_公 回答时间:2014-1-6 19:44:23

RE:如何让STM32F4的DMA传输目的地址递增问题

我最近做了一个ETH 转 USART,用的DMA,感觉其递增功能真的挺好用,但
你这个要是用memory地址递增只能是把peripheral的数据传buffersize次。
    我觉得楼主fengye5340-109024说的是可行的,你看看这样行不行:
1、在外部触发处理中设置一个静态的计数器(static uint_16 COUNTER),每次触发都自加一。
2、采用非递增模式,peripheral地址固定,而memory的地址为基址+COUNTER,buffersize设为1.
3、这样每次触发都初始一下DMA设置,不知这样是否会满足你的高速要求,但感觉影响不是很大(我的USART接受数据转存到缓存就是这么处理的,因为USART的数据寄存器就一个字节长,只能一个个转)
4、if(COUNTER&gt;200){...},你可以根据你的需要写。
quzhanguang-337 回答时间:2015-4-10 21:36:45
徐_公 发表于 2014-1-6 19:44
我最近做了一个ETH 转 USART,用的DMA,感觉其递增功能真的挺好用,但
你这个要是用memory地址递增只能是把pe ...

这跟直接在外部中断了读写数据有什么区别
eurphan 回答时间:2015-4-11 18:36:09
不懂帮顶  
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版