野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20740|回复: 6

关于使用DMA采集多路AD转换值的问题

[复制链接]
发表于 2014-3-19 11:34:07 | 显示全部楼层 |阅读模式
本帖最后由 杀神12300 于 2014-3-19 11:44 编辑

   你好,火哥!有一段时间没来论坛了,现在我已经参加工作了,用的就是STM32单片机,现在我遇到了点问题,请求指教!
    我现在需要做的工作是实现ADC的两个通道采集,同时采用DMA来读取ADC的转换数据,如何能把两通道采集的AD值分别保存到DMA保存的不同地址呢(例如保存到数组a[2]中),需要在你们的例程里边做哪些改动呢,求指教!急 急!最好能把配置截个图发过来!
回复

使用道具 举报

发表于 2014-3-19 11:35:13 | 显示全部楼层
没搞过STM32,不过这个应该需要两路DMA来完成吧
回复 支持 反对

使用道具 举报

发表于 2014-3-19 15:01:49 | 显示全部楼层
两个通道的ad值是轮流采集的,采集出来都是存放在同一个adc数据寄存器,你用原来的dma配置,adc配置成2个通道就可以了,采集出来的数据是以:通道A,通道B,通道A,通道B...这样的数据格式存储的。
回复 支持 反对

使用道具 举报

发表于 2014-3-19 15:07:47 | 显示全部楼层
把你的a[2]指向DMA数据地址不就行了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-19 15:33:35 | 显示全部楼层
公孙璇娟 发表于 2014-3-19 15:01
两个通道的ad值是轮流采集的,采集出来都是存放在同一个adc数据寄存器,你用原来的dma配置,adc配置成2个通道 ...

但我现在想通过DMA把通道A的值保存在a[0],通道B的值保存在a[1]中,如何实现呢
回复 支持 反对

使用道具 举报

发表于 2014-3-19 16:21:15 | 显示全部楼层
杀神12300 发表于 2014-3-19 15:33
但我现在想通过DMA把通道A的值保存在a[0],通道B的值保存在a[1]中,如何实现呢

将DMA_BufferSize设置为2数据库,然后将DMA_MemoryBaseAddr的数据放入a中
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-19 18:02:00 | 显示全部楼层
三流电工 发表于 2014-3-19 16:21
将DMA_BufferSize设置为2数据库,然后将DMA_MemoryBaseAddr的数据放入a中

看看我哪里还有问题,帮忙修改下
QQ图片20140319180431.jpg
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 20:19 , Processed in 0.046610 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表