香主求救:Stm32F207的AD16路采样

[复制链接]
3793|8
 楼主| 雨辰073 发表于 2011-11-9 16:48 | 显示全部楼层 |阅读模式
本帖最后由 雨辰073 于 2011-11-9 16:49 编辑

香主,求救,目前在做一个项目,使用的芯片是stm32F207VG。想同时在AD进行16路采样,已经设定好是ADC1(8路)和ADC3(8路),规则转换。并且需要使用DMA来传输AD数据到一个设定的缓冲区buffer,用定时器来触发启动转换。请问一下,应该设置哪一种模式让DMA搬运ADC1和ADC3的数据到一个我设定的Buffer?,要是我把ADC1和ADC3分开工作,使用独立模式,同样还是搬到我设定那个缓冲区的话,这样存放数据会不会混乱?
香水城 发表于 2011-11-9 16:57 | 显示全部楼层
你想在缓冲区中怎么安排数据?
 楼主| 雨辰073 发表于 2011-11-9 17:30 | 显示全部楼层
想依次存放每次ADC1-ADC3的16路数据,根据Rank排序来存放。首先定义的是采样次数ADC——CVTNUM,接下来我定义#define SBUFFER_LEN(ADC_CVTNUM*2),我存放的缓冲区大小为#define INT16 Buffer[SBUFFER_LEN][16];这样存放数据是否会混乱?
香水城 发表于 2011-11-9 17:47 | 显示全部楼层
可以用ADC2吗?ADC2与ADC1可以联动,更方便,库中还有相应例程。
 楼主| 雨辰073 发表于 2011-11-9 18:55 | 显示全部楼层
不行啊  我也看到库中的例啊程,只能用ADC1和ADC3。要是可以用ADC2就好多了!香主,有什么好的方法吗?
香水城 发表于 2011-11-9 21:16 | 显示全部楼层
你可以先看看手册。
 楼主| 雨辰073 发表于 2011-11-10 09:35 | 显示全部楼层
我说的不行是指硬件电路设计已经被设定成了ADC1和ADC3,没有用ADC2.所以要是让ADC1和ADC3关联起来工作,并且不让数据存放混乱,就比较棘手啊!
香水城 发表于 2011-11-10 12:11 | 显示全部楼层
我说的不行是指硬件电路设计已经被设定成了ADC1和ADC3,没有用ADC2.所以要是让ADC1和ADC3关联起来工作,并且不让数据存放混乱,就比较棘手啊!
雨辰073 发表于 2011-11-10 09:35


如果是这样,只需要把ADC1和ADC3的缓冲区区分开就可以,不会混乱的。

如果想交叉存放数据,就不行了。
 楼主| 雨辰073 发表于 2011-11-10 15:16 | 显示全部楼层
恩,目前的做法的确是分成2个缓冲区。谢谢香主了!:lol下周开始测试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

33

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部