打印
[STM32F1]

关于STM32F1XX内部ADC DUAL模式使用问题

[复制链接]
1050|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huhaomcu|  楼主 | 2015-4-20 23:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在想使用内部ADC同时测量外部两路电压值,可STM32F的数据手册写的实在是太纠结了,现有如下问题不是很明白,请大家指教!
我基本上按照STM32F库中的例程对其进行了配置,
1.有点不明白的是当我启动转换后我应该以什么标志位来判断可以进行读取DMA里的值咧,是以ADC转换完成标志还是以DMA完成传输标志咧?
2.我只是采集一次两路ADC,我定义的DMA存储大小为两个字(32位),如TABLE[2],可我调试时发现为什么TABLE[0]与TABLE[1]内都有值咧,照理说我只是转换一次只应该TABLE[0]有数据咧?关于STM32F1内部ADC真是好多地方不明白,不知我上述问题表述的是否清楚,请各位指教了!!
沙发
香水城| | 2015-4-27 17:20 | 只看该作者
使用F1的ADC进行多路转换(你这里是2路),当通道1和通道2都转换完成后会触发EOC中断(end of conversion)。因此如果你使用的是regular通道,则每次转换的数据都会放在同一个寄存器里,那么第一次的转换会被第二次覆盖,如果你不能即时读走的话。那么这种情况下,使用EOC中断再去读取,会丢失第一个通道的数据,因此需要使用DMA去读取。如果使用的是inject通道,由于F1可最多支持4个inject通道,且每个通道对应自己独立的数据寄存器,因此不会彼此冲突。在EOC中断时,再去读两个独立的寄存器也可把数据读回来。

使用特权

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

本版积分规则

189

主题

508

帖子

3

粉丝