OpenEdv-开源电子网

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

关于ADC多通道采集必须用到DMA吗?

[复制链接]

66

主题

364

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-18
在线时间
129 小时
发表于 2016-4-6 22:19:20 | 显示全部楼层 |阅读模式
1金钱
今天刚看到ADC这一章,想研究下ADC多通道采集,在论坛里看了很多帖子,都是用到了DMA,多通道采集必须用到这个吗?我还没学到DMA

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

使用道具 举报

66

主题

364

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-18
在线时间
129 小时
 楼主| 发表于 2016-4-6 22:28:20 | 显示全部楼层
回复

使用道具 举报

66

主题

364

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-18
在线时间
129 小时
 楼主| 发表于 2016-4-6 22:58:58 | 显示全部楼层
ding   
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11537
金钱
11537
注册时间
2014-4-1
在线时间
1314 小时
发表于 2016-4-6 23:16:54 | 显示全部楼层

不一定要用DMA,
关键看你速度要求,还有任务密度。




回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-7 01:17:35 | 显示全部楼层
不一定, 就看你的要求来, 比如你需用要ADC1 ADC2同步采样, 如果每触发一次转换, 你就读取一次数据, 哪直接来就行了, 但是假若你觉得每次读取的值都会有变化, 需要一次多读一些比如10个或100个数据来做中值滤波后再用,并具最要命的是你的CPU这时还要去处理其它的事情,哪借用DMA就是唯于的办法了。
回复

使用道具 举报

66

主题

364

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-18
在线时间
129 小时
 楼主| 发表于 2016-4-7 08:09:45 | 显示全部楼层
likunxue 发表于 2016-4-7 01:17
不一定, 就看你的要求来, 比如你需用要ADC1 ADC2同步采样, 如果每触发一次转换, 你就读取一次数据, 哪 ...

我就弄了ADC1的通道0和1,然后LCD显示ADC值,但是两个一起获取时出来的数据不对
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-4-7 09:39:02 | 显示全部楼层
你不用dma你什么时候读,你没发现读的寄存器是同一个吗
我有故事,你有酒吗
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-7 11:48:55 | 显示全部楼层
本帖最后由 likunxue 于 2016-4-7 12:00 编辑
来俩不甜的 发表于 2016-4-7 09:39
你不用dma你什么时候读,你没发现读的寄存器是同一个吗

有两种模式, 如果你用注入模式, 一次最多可转换4个通导,各有各的寄存器式  ADC_JDR1~4,
如果你用 规则组转换, 哪每个通导都共用一个寄存器 ADC_DR,转换一个读一个,再转换第二个,只能这样, 要不后面的转换就会把前面的充掉.如果你设为ADC1 与ADC2同步规则转换,哪一次触发转换两个ADC, 其值也在 ADC_DR中, 但高16位是ADC2 ,低16是ADC1 ,但是需要注意的是,在这种模式中, 不用DMA,也要使能DMA才能转换同时转换两个ADC
也就是非曲直   ADC1->CR2的  第8位要置1 才有效


回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-4-7 11:56:19 | 显示全部楼层
likunxue 发表于 2016-4-7 11:48
有两种模式, 如果你用注入模式, 一次最多可转换4个通导,各有知的寄存器,
如果你用 规则组转换, 哪 ...

是啊,所以要用dma,不是很难看看就会
我有故事,你有酒吗
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-9-25
在线时间
2 小时
发表于 2019-11-4 10:55:31 | 显示全部楼层
likunxue 发表于 2016-4-7 11:48
有两种模式, 如果你用注入模式, 一次最多可转换4个通导,各有各的寄存器式  ADC_JDR1~4,
如果你用  ...

学习好,还有这么多ADC和DMA内容!
回复

使用道具 举报

37

主题

596

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1574
金钱
1574
注册时间
2017-7-17
在线时间
308 小时
发表于 2019-11-4 11:35:22 | 显示全部楼层
不是啊,你可以手动一个通道一个通道执行转换然后读取啊。
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2019-11-21
在线时间
21 小时
发表于 2019-11-22 15:48:22 | 显示全部楼层
likunxue 发表于 2016-4-7 11:48
有两种模式, 如果你用注入模式, 一次最多可转换4个通导,各有各的寄存器式  ADC_JDR1~4,
如果你用  ...

转换一个再读一个是ADC扫描模式吗?这样是不是不用DMA也可以,准换完从DR内读取数据就可以;如果是连续转换,就应该采用DMA了吧。
回复

使用道具 举报

10

主题

161

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2019-9-5
在线时间
134 小时
发表于 2019-11-22 16:02:15 | 显示全部楼层
可以用中断,不用dma
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 12:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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