打印
[STM32F1]

关于STM32多通道ADC

[复制链接]
2120|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 神马都是浮云
5
foxpro2005| | 2014-4-27 10:52 | 只看该作者
可以配置好规则通道序列(多个采样通道)或注入序列, 设置好采样时间, 可以 以连续+扫描模式一直转换, 让DMA去搬运...

使用特权

评论回复
6
yxw21yxw21|  楼主 | 2014-4-27 20:06 | 只看该作者
善水盈渊 发表于 2014-4-27 10:38
刚好我也准备做两路的ADC,好像有思路是分别设成独立非扫描的方式,然后定时变换通道设置,但是我觉得还是 ...

是吗。那我得再去学学DMA了。

使用特权

评论回复
7
yxw21yxw21|  楼主 | 2014-4-27 20:07 | 只看该作者
foxpro2005 发表于 2014-4-27 10:29
不用DMA,可以用中断; 当然查询也可以, 只是效率低一点。

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

查询的话查询什么flag呢?

使用特权

评论回复
8
cdshkf| | 2014-5-8 15:07 | 只看该作者
规则通道转换的值储存在一个仅有的数据寄存器中,所以当转换多个规则通道时需要使用DMA,这可以避免丢失已经存储在ADC_DR寄存器中的数据。
楼上的各位热心盆友,请问如果不用DMA,你告诉我怎么用查询或者中断读出来第一个通道的AD转换数据!
所以楼猪,如果要多通道,一定要用DMA!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

0

粉丝