[STM32F1] 关于STM32多通道ADC

[复制链接]
2516|7
 楼主| yxw21yxw21 发表于 2014-4-27 01:20 | 显示全部楼层 |阅读模式
本帖最后由 yxw21yxw21 于 2014-4-27 01:22 编辑

我想做2路信号的ADC,看到很多帖子都是用DMA的。请问如何不用DMA实现2路采样呢?因为2路信号都只是直流电压而已。
关键问题不在于怎么去配置,而是怎么分别读取出2路信号的值呢?
yzzly 发表于 2014-4-27 09:34 | 显示全部楼层
可以用中断、可以用查询
foxpro2005 发表于 2014-4-27 10:29 | 显示全部楼层
不用DMA,可以用中断; 当然查询也可以, 只是效率低一点。

但使用中断的话,如果一直在采样的话,很耗CPU资源的, 所以一般都会用DMA去当搬运工。

善水盈渊 发表于 2014-4-27 10:38 | 显示全部楼层
刚好我也准备做两路的ADC,好像有思路是分别设成独立非扫描的方式,然后定时变换通道设置,但是我觉得还是用DMA好点,所以准备用DMA了……

评分

参与人数 1威望 +1 收起 理由
yxw21yxw21 + 1 神马都是浮云

查看全部评分

foxpro2005 发表于 2014-4-27 10:52 | 显示全部楼层
可以配置好规则通道序列(多个采样通道)或注入序列, 设置好采样时间, 可以 以连续+扫描模式一直转换, 让DMA去搬运...
 楼主| yxw21yxw21 发表于 2014-4-27 20:06 | 显示全部楼层
善水盈渊 发表于 2014-4-27 10:38
刚好我也准备做两路的ADC,好像有思路是分别设成独立非扫描的方式,然后定时变换通道设置,但是我觉得还是 ...

是吗。那我得再去学学DMA了。
 楼主| yxw21yxw21 发表于 2014-4-27 20:07 | 显示全部楼层
foxpro2005 发表于 2014-4-27 10:29
不用DMA,可以用中断; 当然查询也可以, 只是效率低一点。

但使用中断的话,如果一直在采样的话,很耗CPU ...

查询的话查询什么flag呢?
cdshkf 发表于 2014-5-8 15:07 | 显示全部楼层
规则通道转换的值储存在一个仅有的数据寄存器中,所以当转换多个规则通道时需要使用DMA,这可以避免丢失已经存储在ADC_DR寄存器中的数据。
楼上的各位热心盆友,请问如果不用DMA,你告诉我怎么用查询或者中断读出来第一个通道的AD转换数据!
所以楼猪,如果要多通道,一定要用DMA!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

0

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