关于STM32 ADC的扫描模式

标签:
杂谈 |
分类: 单片机andC语言 |
楼主(我):
http://s5/middle/0414b736nc62bfaeb8a44&690 ADC的扫描模式" TITLE="关于STM32 ADC的扫描模式" />
我经过参考网上的资料 感觉EOC位 好像是每个通道转换结束 置位。而不是像书上这样说的
通道组转换结束时置位。
就像扫描模式,应该是每一个通道转换完就置一次,而不是等所有的通道都结束了才置位的。
不知道我理解的对不对?
书上写错了的?
补充一张图 就会发现采样多个通道 必须使用DMA
http://s12/middle/0414b736nc6900502cbdb&690 ADC的扫描模式" TITLE="关于STM32 ADC的扫描模式" />
http://s14/middle/0414b736nc690051524cd&690 ADC的扫描模式" TITLE="关于STM32 ADC的扫描模式" />
http://s15/middle/0414b736nc69004f3309e&690 ADC的扫描模式" TITLE="关于STM32 ADC的扫描模式" />
下面这张截图是 我看的
STM32参考手册的关于ADC状态寄存器ADC1_SR的资料
我经过参考网上的资料 感觉EOC位
就像扫描模式,应该是每一个通道转换完就置一次,而不是等所有的通道都结束了才置位的。
不知道我理解的对不对?
书上写错了的?
1L:
额!这个还真不知道
2L(版主):
回复【楼主位】 utopia779 :
---------------------------------
这个要实验一下了.以实际实验结果为准.
---------------------------------
这个要实验一下了.以实际实验结果为准.
3L:
应该是每一个通道转换完就置一次
这样的话DMA才能在每个通道转换完立即取出数据
我是这样理解的
这样的话DMA才能在每个通道转换完立即取出数据
我是这样理解的
4L(我自己):
这个问题 现在我的理解是这样的
这个采样结束标记位 是完成所有的通道才置位的
所以,我们无法读取每个通道的采样数据
那怎么办呢?
那就需要使用DMA来读数据。
会有人问 DMA怎么知道 什么时候采样数据呢!
这个看 STM参考手册 或许 能够看得出来。
ADC的DMA请求并不经过 规则通道数据寄存器,而是通过转换器直接申请。
立此为证,等我完全明白了 再来解释。
这个采样结束标记位 是完成所有的通道才置位的
所以,我们无法读取每个通道的采样数据
那怎么办呢?
那就需要使用DMA来读数据。
会有人问 DMA怎么知道 什么时候采样数据呢!
这个看 STM参考手册 或许 能够看得出来。
ADC的DMA请求并不经过 规则通道数据寄存器,而是通过转换器直接申请。
立此为证,等我完全明白了 再来解释。
补充一张图 就会发现
如下图
具体的使用步骤:
主要是配置 ADC和 DMA。记得打开ADC的DMA允许位。
http://s12/middle/0414b736nc6900502cbdb&690
http://s14/middle/0414b736nc690051524cd&690
http://s15/middle/0414b736nc69004f3309e&690
打开一次DMA的传输 DMA开始工作
然后开始进行AD转换,转换后产生DMA请求,将数据进行存储, 存储的采样数取决于 DMA设置的数量。
前一篇:C语言获取编译日期时间和系统时间
后一篇:STM32的IO模式选择