OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1712|回复: 2

精英板DMA的通道问题求助。

[复制链接]

29

主题

338

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2018-4-13
在线时间
170 小时
发表于 2018-8-20 23:53:20 | 显示全部楼层 |阅读模式
5金钱
我在学习DMA,对于DMA通道配置有些不太明白。
DMA是直接存储访问,不需要CPU参与,可以提高CPU的处理效率。这些存储访问可以是外设-内存之间的访问,也可以是内存-内存之间的访问。
但是DMA的通道和外设有关,是否意味着DMA必须要外设参与才可以进行?
那么内存-内存间的DMA又是如何理解呢?和外设有什么关系呢?
是否可以这样理解:
DMA的通道定义了某个外设参与DMA控制,开启了哪个外设就意味着哪个外设参与:使用USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE)就意味着是USART1的发送完成中断参与,也就意味这必须使用DMA1的通道4才可以。
那么是否意味着DMA的源和目的之一必须是USART1的某个寄存器,还是可以是和USART1无关的其他某个地址:可以是外设寄存器也可以是内存地址?
如果通道和源、目的无关是否就是说:其实通道是定义了DMA访问的触发事件,它和通道规定的某个外设有关,开启了某个外设的DMA并且匹配通道(在通道规定的外设里面)就可以在合适的时候触发该通道配置的DMA操作?
比如DMA1的Channel4,程序使能了USART1的TX的DMA,则串口1的发送事件可以触发配置在该通道4上的DMA操作,这个操作可以把源数据送往目的。
如果理解没错,那么通道4还和TIM1关联,如果开启了TIM1的定时到事件,则定时到就会自动把源送往目的。
比如定时把内存数据发往串口1,触发条件是TIM1定时到。
明天测试看看是否是这样。




最佳答案

查看完整内容[请看2#楼]

你可以理解DMA为: 1,支持内存到内存模式, 这个模式,无需任何外设触发,一单启动,以最快的速度,进行内存到内存的数据搬运。 2,支持内存到外设/外设到内存模式,这个模式,一般 由外设触发,外设触发一次,传输一次。 最后,特别的,支持外设到外设模式,这个模式,也有一个外设触发,另外一个外设被动接收。具体触发源来自哪里,则由你选择的通道决定。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-8-20 23:53:21 | 显示全部楼层
你可以理解DMA为:
1,支持内存到内存模式, 这个模式,无需任何外设触发,一单启动,以最快的速度,进行内存到内存的数据搬运。
2,支持内存到外设/外设到内存模式,这个模式,一般 由外设触发,外设触发一次,传输一次。
最后,特别的,支持外设到外设模式,这个模式,也有一个外设触发,另外一个外设被动接收。具体触发源来自哪里,则由你选择的通道决定。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

29

主题

338

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2018-4-13
在线时间
170 小时
 楼主| 发表于 2018-8-21 07:52:48 | 显示全部楼层
正点原子 发表于 2018-8-20 23:53
你可以理解DMA为:
1,支持内存到内存模式, 这个模式,无需任何外设触发,一单启动,以最快的速度,进行 ...

如果是内存-内存,是否任何通道均可以,不需要特定哪个通道?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 01:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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