OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 16807|回复: 8

ADC的3个通道同时采集三个数据应如何配置

[复制链接]

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
发表于 2014-3-25 13:54:51 | 显示全部楼层 |阅读模式
我现在输入三个数据a,b,c到STM32芯片,用ADC的channel4,5,6来分别采集a,b,c三数据,并把这三个数据的值读取出来。
网上看到的例程不是只用一通道采集一个数据,就是多个通道采集同一个数据再取平均值。都不是我要的结果。

网上的例程中,获得这个数据的值的方法是        return ADC_GetConversionValue(ADC1);
但是如果我采集了三个不同的数据a,b,c,这个函数是无法返回ADC某个通道的值的吧?那应该怎么办呢?
谢谢~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-3-25 20:57:55 | 显示全部楼层
回复【3楼】馨馨泡沫:
---------------------------------
1.“当我设置完成后,已经自动得到了adc_val[1]的值,只需要在主函数中直接引用这三个值用到其他地方做接下来的工作就可以了呢? ”
是的。设置好之后你只管读adc_val中的数据就好了。
2.ADC_InitStructure.ADC_ScanConvMode = ENABLE;              //多通道循环扫描
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//单次模式
3.“然后把NbrOfChannel定为3? ”
是的
站在巨人的肩膀上不断的前进。。。
回复 支持 1 反对 0

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-3-25 14:42:02 | 显示全部楼层
回复【楼主位】馨馨泡沫:
---------------------------------
用DMA搬运
你采集的这三个通道就可以用三个元素的数组存放
u16 adc_val[3];
adc_val[0]   -----------------channel 4
adc_val[1]   -----------------channel 5
adc_val[2]   -----------------channel 6

ADC采用规则采样,DMA循环搬运就可以了。
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
 楼主| 发表于 2014-3-25 14:59:41 | 显示全部楼层
回复【2楼】xiaoyan:
---------------------------------
我使用了DMA,但是不太明白DMA搬运应该如何表达。比如当我不用DMA的时候,我获得这个数据用的是data= return ADC_GetConversionValue(ADC1);
那么我用DMA搬运三个数据应该是adc_val[1]=_______________呢?
还是说不必使用任何编程语句,当我设置完成后,已经自动得到了adc_val[1]的值,只需要在主函数中直接引用这三个值用到其他地方做接下来的工作就可以了呢?

谢谢~
回复 支持 反对

使用道具 举报

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
 楼主| 发表于 2014-3-25 15:02:56 | 显示全部楼层
回复【2楼】xiaoyan:
---------------------------------
另外请问,我应当把ADC工作模式设置为单通道模式和单次模式对么?然后把NbrOfChannel定为3?
回复 支持 反对

使用道具 举报

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
 楼主| 发表于 2014-3-25 21:36:37 | 显示全部楼层
回复【5楼】xiaoyan:
---------------------------------
知道了,非常感谢!!!
回复 支持 反对

使用道具 举报

0

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2013-5-30
在线时间
3 小时
发表于 2016-5-20 09:49:22 | 显示全部楼层
学习了  非常感谢
做自己喜欢做的的事,爱自己所爱的人!
回复 支持 反对

使用道具 举报

1

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2016-8-15
在线时间
13 小时
发表于 2016-11-3 23:22:59 | 显示全部楼层
xiaoyan 发表于 2014-3-25 14:42
回复【楼主位】馨馨泡沫:
---------------------------------
用DMA搬运

请问 我想实现5通道连续采集,用DMA将数据传输到一个数组(大小有限)里,我有两个疑问;一是:五个通道采集的五个点是不是数组里面第一到第五的顺序呢,后面依次循环? 二是:如何保证在读出数组里的数据时读出的速度不快于DMA,或者说怎么保证读出数据的速度合适?
回复 支持 反对

使用道具 举报

8

主题

569

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2363
金钱
2363
注册时间
2015-5-8
在线时间
320 小时
发表于 2017-7-16 12:01:20 | 显示全部楼层
不错,学习了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-12-18 22:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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