找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1494|回复: 9
打印 上一主题 下一主题
收起左侧

STM32单片机ADC是在满足那个条件下触发DMA搬运?

[复制链接]
跳转到指定楼层
楼主
ID:887155 发表于 2022-4-25 14:42 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
各位大佬请指教一下:STM32F103C8T6
我使用DMA来搬运ADC读取到的数据,想使用硬件触发DMA搬运。那ADC是在满足那个条件下触发DMA搬运的呢?在DMA搬运前ADC读取到的数据又存放在哪里呢?能存多少数据呢?在DMA初始化时有一个搬运数据的量设置,例如100个数据,是不是说当ADC采集完100个数据后,就会触发ADC进行搬运呢?

谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:401564 发表于 2022-4-25 15:37 | 只看该作者
ADC工作在DMA的模式下又不占用运行,干嘛要硬件触发呢?
如果不是要降低功耗,ADC可以一直进行,MDA工作在循环模式下,就一直在保存着一定长度的数据,你用的时候,只要读取就可以了
在DMA模式下,每次ADC转换完成,DMA就搬运一次数据,并不是要等到100次ADC之后才搬运的
如果是你设定了100个数据,而且,ADC已经进行超过了100次,那么,这100个数据就一直是最近100次ADC的数据
回复

使用道具 举报

板凳
ID:887155 发表于 2022-4-25 15:42 来自手机 | 只看该作者
感谢解答!
回复

使用道具 举报

地板
ID:887155 发表于 2022-4-25 15:45 来自手机 | 只看该作者
是不是说DMA在循环模式下,ADC转换成功一次就会触发DMA搬运一次数据。在DMA搬运数据中,有一个数据大小,这个参数是干嘛的呢?是指每次搬运这么多个数据吗?
回复

使用道具 举报

5#
ID:401564 发表于 2022-4-25 17:31 | 只看该作者
风吹过又见你 发表于 2022-4-25 15:45
是不是说DMA在循环模式下,ADC转换成功一次就会触发DMA搬运一次数据。在DMA搬运数据中,有一个数据大小,这 ...

是的是的,每次ADC成功转换一次就搬运一次
但并不是每次搬运100个,只是把ADC的数据(就是12位ADC结果)搬运到DMA初始化时所指定的地址而已
但你说的"数据大小"不知道指的是什么,代码上传一下
可能是教材不一样吧,我这本书里只有数据位宽和存储长度,没有大小这一说
回复

使用道具 举报

6#
ID:887155 发表于 2022-4-25 17:55 来自手机 | 只看该作者
就是圈出来了的那一行代码

mmexport1650880498549.png (420.01 KB, 下载次数: 16)

mmexport1650880498549.png
回复

使用道具 举报

7#
ID:401564 发表于 2022-4-25 20:34 | 只看该作者
风吹过又见你 发表于 2022-4-25 17:55
就是圈出来了的那一行代码

DMA_BufferSize就是指定DMA缓存的大小
就是留下多少个地址来存放ADC结果的意思
比如说你要保存100组ADC数据,那这个值就是100
实际上它就是等于(u32)dma1_data_buff这个数组的总长度,如果是二维数组,那就是行*列
回复

使用道具 举报

8#
ID:887155 发表于 2022-4-26 02:31 来自手机 | 只看该作者
Y_G_G 发表于 2022-4-25 20:34
DMA_BufferSize就是指定DMA缓存的大小
就是留下多少个地址来存放ADC结果的意思
比如说你要保存100组ADC ...

也就是说DMA会保存最新100个ADC所测量的数值吗?如果有新的一轮数据将会覆盖掉旧的是吧!但硬件触发DMA搬运,仍然是ADC转换成功一次就会触发一次咯,还是说先保存下100个数据再硬件触发一次DMA搬运?
回复

使用道具 举报

9#
ID:401564 发表于 2022-4-26 10:31 | 只看该作者
风吹过又见你 发表于 2022-4-26 02:31
也就是说DMA会保存最新100个ADC所测量的数值吗?如果有新的一轮数据将会覆盖掉旧的是吧!但硬件触发DMA搬 ...

我都说得这么明白,还不理解?"这100个数据就一直是最近100次ADC的数据"
不是一轮数据,是每次ADC成功转换之后的一个数据,"一个数据"明白不?
然后,DMA的100个数据中,最先保存那个数据会被替换成本次ADC的数据,类似于堆栈溢出或者像数组溢出一样的方式,把最先保存的数据给挤出去(不要问挤出去的数据到哪里了)
回复

使用道具 举报

10#
ID:123289 发表于 2022-4-26 16:28 | 只看该作者
查DAM手册,找到触发DAM的方式。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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