打印

请教 STM32的ADC工作模式

[复制链接]
19285|59
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
machunshui|  楼主 | 2010-5-3 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32的ADC工作模式有:
单次,
连续,
扫描,

疑问如下:
1.单次模式转换的通道是由ADC_SQR指定的吗?
第一次和第二次单次转换的通道是按照ADC_SQR序列步进,
还是一只就是ADC_SQR中的第一通道?

如果是步进方式,
连续触发N次单次转换,到达ADC_SQR序列最后一个通道,
是回头从一个通道继续,还是一直转换最后一个通道?


2.连续是模式转换的通道是由ADC_SQR指定的吗?

开始连续转换,然后停止,再次连续转换,
转换的通道是按照ADC_SQR序列步进,
还是一只就是ADC_SQR中的第一通道?

如果是步进方式,
连续触发N次连续转换,到达ADC_SQR序列最后一个通道,
是回头从一个通道继续,还是一直转换最后一个通道?
沙发
machunshui|  楼主 | 2010-5-3 10:48 | 只看该作者
手册上说的太简省了

使用特权

评论回复
板凳
lxyppc| | 2010-5-3 11:22 | 只看该作者
本帖最后由 lxyppc 于 2010-5-3 11:26 编辑

楼主没有弄明白单次,连续还有扫描的关系

扫描模式如果没有启用,则启动一次AD转换只会转换第一个通道,如果是单次模式,则转换完成后不动作,如果是连续模式,则转换完成后继续转换

扫描模式如果启用,则启动AD转换会转换所有设定的通道,如果是单次模式,则所有通道转换完成后不动作,如果是连续模式,则所有通道转换完成后继续从第一个通道开始转换

使用特权

评论回复
地板
machunshui|  楼主 | 2010-5-3 11:24 | 只看该作者
呵呵,
就是有不明白的地方才请教啊.

使用特权

评论回复
5
machunshui|  楼主 | 2010-5-3 11:32 | 只看该作者
3楼说得手册上都有啊.

但是我得提问不是这个啊!
是具体的转换通道的问题啊

使用特权

评论回复
6
lxyppc| | 2010-5-3 17:20 | 只看该作者
我举个例子吧,
用ADC1,Regular通道的顺序为Ch0,Ch1,Ch2,Ch3,启动Scan模式
在单次转换模式下:
启动ADC1,则
1. 开始转换Ch0
2. 转换完成后自动开始转换Ch1
3. 转换完成后自动开始转换Ch2
4. 转换完成后自动开始转换Ch3
5. 转换完成后停止,等待ADC的下一次启动。下一次ADC启动从第一步开始

在连续转换模式下:
启动ADC1,则
1. 开始转换Ch0
2. 转换完成后自动开始转换Ch1
3. 转换完成后自动开始转换Ch2
4. 转换完成后自动开始转换Ch3
5. 转换完成后回到第一步


如果没启动Sacn模式则上述过程中没有2、3、4这三个步骤
上述前提是Discontinuous模式没有启用。

使用特权

评论回复
7
machunshui|  楼主 | 2010-5-3 18:30 | 只看该作者
感谢楼上回答.
你说的SCAN模式我明白.

我说的是非SCAN模式.

例如:
用ADC1,Regular通道的顺序为Ch0,Ch1,Ch2,Ch3,非Scan模式,

1. 开始转换Ch0
转换完成.

再次启动单次转换,
转换第几通道?
继续转换Ch0,还是CH1?

不断重复单次转换,
如果是按照序列步进,转换到最后一个通道以后,
是一只转换最后一个通道,
还是回头转换第一个通道?

使用特权

评论回复
8
lxyppc| | 2010-5-3 18:37 | 只看该作者
再次启动单次转换,
转换第几通道?
继续转换Ch0,还是CH1?
machunshui 发表于 2010-5-3 18:30

我觉得是转换Ch1,这个需要香版确定一下

不断重复单次转换,
如果是按照序列步进,转换到最后一个通道以后,
是一只转换最后一个通道,
还是回头转换第一个通道?
machunshui 发表于 2010-5-3 18:30 [/quote]
我觉得是回头转换第一个通道

使用特权

评论回复
9
machunshui|  楼主 | 2010-5-3 19:29 | 只看该作者
手册上说得太简略了.

如果对连续模式,不断开始--->停止--->开始.......,

不知道其转换通道如何选择?

使用特权

评论回复
10
lxyppc| | 2010-5-3 21:57 | 只看该作者
感觉手册上说得虽然简略,但是还是说清楚了的
转换通道由ADC_SQR来指定

使用特权

评论回复
11
machunshui|  楼主 | 2010-5-4 00:09 | 只看该作者
不同意LS.

我提的问题,
手册上信息就没办法明确啊!

使用特权

评论回复
12
shizhewen| | 2010-5-4 07:45 | 只看该作者
顶,10楼的同胞

使用特权

评论回复
13
machunshui|  楼主 | 2010-5-4 08:15 | 只看该作者
LS兄弟,
不要光顶啊,
我的问题也顺便回答一下啊。

使用特权

评论回复
14
mcuisp| | 2010-5-4 09:47 | 只看该作者
我是来光顶的。

使用特权

评论回复
15
香水城| | 2010-5-4 22:04 | 只看该作者
1.1)单次模式转换的通道是由ADC_SQR指定的。
1.2)第一次和第二次单次转换的通道不是按照ADC_SQR序列步进,只转换第一个通道。

2.1)连续模式转换的通道是由ADC_SQR指定的。
2.2)如果SCAN=1,则开始连续转换后,转换的通道是按照ADC_SQR序列循环步进。
如果SCAN=0,则开始连续转换后,只是转换ADC_SQR中的第一通道。


其实这些信息都在手册中,只是没有按照你需要的方式集中在一个地方。

使用特权

评论回复
16
香水城| | 2010-5-4 22:11 | 只看该作者
CONT=0,SCAN=0    单次转换模式(Single conversion mode)
CONT=1,SCAN=0    连续转换模式(Continuous conversion mode)
CONT=0,SCAN=1    扫描转换模式(Scan mode):所有ADC_SQR序列通道转换一次后停止。
CONT=1,SCAN=1    扫描转换模式(Scan mode):所有ADC_SQR序列通道转换一次后,再从第一个通道循环。

使用特权

评论回复
17
zwll| | 2010-5-4 22:19 | 只看该作者
这么复杂

使用特权

评论回复
18
machunshui|  楼主 | 2010-5-5 08:37 | 只看该作者
谢谢版主!

看来还不是步进方式!

使用特权

评论回复
19
machunshui|  楼主 | 2010-5-5 08:40 | 只看该作者
那么是不是对连续模式,

启动---〉停止----〉启动---〉。。。。
的情况下,

也是一直转换的是ADC_SQR第一通道?

使用特权

评论回复
20
香水城| | 2010-5-5 09:44 | 只看该作者
那么是不是对连续模式,

启动---〉停止----〉启动---〉。。。。
的情况下,

也是一直转换的是ADC_SQR第一通道?
machunshui 发表于 2010-5-5 08:40


请看我在16楼的列表:如果在连续转换模式下,SCAN=0,则一直转换的是ADC_SQR第一通道;如果在连续转换模式下,SCAN=1,则转换ADC_SQR指定的所有通道。

理解这个问题的关键是,不要把单次转换模式与连续转换模式孤立地看待,应该结合扫描模式一起看待。当SCAN=0时,不管是单次模式还是连续模式都只转换ADC_SQR的第一通道;而当SCAN=1时,不管是单次模式还是连续模式都转换ADC_SQR的所有通道。你再回顾一下我在16楼的列表,对比一下。

使用特权

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

本版积分规则

153

主题

3224

帖子

4

粉丝