OpenEdv-开源电子网

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

ADC8通道采集DMA中断传输

[复制链接]

7

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2013-8-3
在线时间
0 小时
发表于 2013-8-29 12:54:03 | 显示全部楼层 |阅读模式



ADC8通道采集DMA中断传输.zip

236.04 KB, 下载次数: 417

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

107

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2013-5-5
在线时间
0 小时
发表于 2013-8-29 12:56:01 | 显示全部楼层
学习,上次用DMA只能实现六通道,应该是我设置问题,有问题在向你请教!
游走在生活里,你我都是涉世未深的旅人,前方有我们为之心怡的归宿,身后又是一片葱郁的往昔,让生活的零碎随风而来,又似过往的随风云烟而散,唯有这厮,方能守得云开,待到春花烂漫!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-29 14:25:52 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

7

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2013-8-3
在线时间
0 小时
 楼主| 发表于 2013-8-29 15:59:45 | 显示全部楼层
回复【2楼】冰尘牧之:
---------------------------------
相互学习
回复 支持 反对

使用道具 举报

7

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2013-8-3
在线时间
0 小时
 楼主| 发表于 2013-8-29 16:02:24 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
希望指正
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2011-11-7
在线时间
9 小时
发表于 2013-8-30 11:31:48 | 显示全部楼层
谢谢!
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
发表于 2013-9-10 16:16:15 | 显示全部楼层



请问:这两行怎么理解?
1.  ADC1->SQR3=0<<0|1<<5|2<<10|3<<15|4<<20|5<<25; //这个表明在第一规则通道当中,进行转换的将是16通道的数据
    ADC1->SQR2=6<<0|7<<5;  
             是打开转换通道吗?        后面的值为什么是0<<0|1<<5|2<<10|3<<15|4<<20|5<<25;为什么不是0<<0|1<<5|1<<10|1<<15???

      2.ADC1->SQR1|=7<<20;是开启3个转换,   我可以开启1个?2个?或者 16个吗?
   

 3.  假如说我要我只要CH0的数据,是不是直接取adc【0】??????????;
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-10 22:31:51 | 显示全部楼层
回复【7楼】a2696026:
---------------------------------
1,看<STM32参考手册>寄存器描述。
2,是有8个通道要转换,不是3个转换。你当然也可以设置2,1,16,都可以。
3,读取ADC->DR;
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2013-8-3
在线时间
0 小时
 楼主| 发表于 2013-9-10 22:35:24 | 显示全部楼层
先说第二个问题:先看数据手册

由此可以看出.ADC1->SQR1|=7<<20;是开启八个通道,如果要开启16个公道就是15<<20了。这是我注释错误的原因。
第一个问题:

这个寄存器说明,每个四位决定一个通道转换,这些转换是有规则的,这些顺序就是你放入DMA中数据的顺序,不可错乱:
第三个问题:是的,如果你是按照上面设置,DMA中adc[0]就是通道0的数据。








回复 支持 反对

使用道具 举报

7

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2013-8-3
在线时间
0 小时
 楼主| 发表于 2013-9-10 22:35:57 | 显示全部楼层
回复【8楼】正点原子:

回复【7楼】a2696026:
---------------------------------
1,看<STM32参考手册>寄存器描述。
2,是有8个通道要转换,不是3个转换。你当然也可以设置2,1,16,都可以。
3,读取ADC->DR;

---------------------------------
应该明白了吧
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
发表于 2013-9-11 11:20:39 | 显示全部楼层
回复【9楼】ITPOWER:

先说第二个问题:先看数据手册由此可以看出.ADC1->SQR1|=7<<20;是开启八个通道,如果要开启16个公道就是15<<20了。这是我注释错误的原因。
第一个问题:这个寄存器说明,每个四位决定一个通道转换,这些转换是有规则的,这些顺序就是你放入DMA中数据的顺序,不可错乱:
第三个问题:是的,如果你是按照上面设置,DMA中adc[0]就是通道0的数据。


---------------------------------
第一个问题: 你的意思是   0,1,2,3,4,5是存在DMA数据的位置?就是说adc【0】 实际上取数据就是在这里取得?
                  后面的0 ,5, 10,15,20之类的事打开的通道?
回复 支持 反对

使用道具 举报

7

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2013-8-3
在线时间
0 小时
 楼主| 发表于 2013-9-11 11:32:00 | 显示全部楼层
回复【11楼】a2696026:
---------------------------------
是打开通道的顺序而已
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
发表于 2013-9-12 06:28:15 | 显示全部楼层
回复【12楼】ITPOWER:

回复【11楼】a2696026:
---------------------------------
是打开通道的顺序而已

---------------------------------
了解了   多谢
回复 支持 反对

使用道具 举报

0

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
326
金钱
326
注册时间
2014-8-15
在线时间
89 小时
发表于 2016-6-16 17:15:18 | 显示全部楼层
MARK            
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-13 18:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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