野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8896|回复: 4

火哥问你个ADC2的问题

[复制链接]
发表于 2017-2-14 19:23:40 | 显示全部楼层 |阅读模式
配套视频里面说DMA可以把数据传到SARM。ADC最后一节里说ADC2没有DMA那为什么可以也可以直接用一个变量来读取? ADC课程第一节的时候没用DMA却需要一个ADC_GetConversionValue函数来获取它的值?想不明白啊


回复

使用道具 举报

发表于 2017-2-15 09:01:47 | 显示全部楼层
不用dma的是直接从adc数据寄存器读取到变量里吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-15 10:45:27 | 显示全部楼层
flyleaf 发表于 2017-2-15 09:01
不用dma的是直接从adc数据寄存器读取到变量里吧

管理员哥哥有空可以看下吗。程序DMA配置那里DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&( ADCx_1->DR ))  也是配32位,低16装AD1高装AD2。可是ADC2不是没DMA功能吗,那采集的时候不应该是分开采集吗,没有DMA为什么也是可以直接把数据跟ADC1在DMA里一起传到SRAM
回复 支持 反对

使用道具 举报

发表于 2017-2-15 11:34:30 | 显示全部楼层
1-ADC2是不能单独使用DMA的,如果是使用DMA,那就是ADC1和ADC2一起使用,即双ADC的情况下由主ADC,即ADC1来开启DMA传输,即只有在双ADC的情况下,ADC2才可以使用DMA,严格来说是跟ADC1一起使用。

2-ADC1/2/3的数据都存储在数据寄存器中,转换完成后,CPU都可以从这个数据寄存器里面把数据读取到一个变量里面,这个不是使用DMA的方式,如果是使用DMA的话,那是不需要CPU来干这个数据搬运的活的,而是直接由DMA控制器来搬运。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-15 13:05:12 | 显示全部楼层
fire 发表于 2017-2-15 11:34
1-ADC2是不能单独使用DMA的,如果是使用DMA,那就是ADC1和ADC2一起使用,即双ADC的情况下由主ADC,即ADC1来 ...

懂了!!!谢谢火哥
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-20 15:55 , Processed in 0.032471 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表