OpenEdv-开源电子网

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

请教下关于 DMA的问题

[复制链接]

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2013-9-12 13:52:26 | 显示全部楼层 |阅读模式
1. 原子的开发指南 写到 :  可编程的数据传输数目:最大为65536
 
也就是说     启动一次DMA 最多能 传输65536个字节 

如果大于这个数 就要启动多次传输???


2. 我有个项目 是关于2个stm32 外挂SRAM的数据搬运的  

2个 STM32采用 SPI链接

设想  主机  从 主机SRAM读取数据 DMA 至 SPI  (SRAM在FSMC的BANK4)
    从机  SPI收到数据后 DMA 到 SRAM    (SRAM 在 FSMC的 bank3)

请问 应该可以这么做吧?  补充 : 2个SRAM 数据是一一对应关系









正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-9
在线时间
0 小时
发表于 2013-9-12 14:07:45 | 显示全部楼层
对的,每次最多65536字节,多于的话就多次传输。
一个是地址到外设,一个是外设到地址,可以用DMA做的,没有问题。
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
 楼主| 发表于 2013-9-12 14:15:59 | 显示全部楼层
再问一个问题

刚看了原子的 例程 是个 地址 --》》外设的例程

如果是 外设==》》地址 该如何做呢?
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
 楼主| 发表于 2013-9-12 14:37:11 | 显示全部楼层
开始有点明白了

地址可以是任何地址    外设 必须是通道支持的外设 

另外 void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr)

其中  cpar 其实是目标地址 (可以是外设 可以是存储器地址)
        cmar  数据源地址  (可以是外设 可以是存储器地址)
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-12 15:01:55 | 显示全部楼层
有长进
回复 支持 反对

使用道具 举报

4

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-9
在线时间
0 小时
发表于 2013-9-12 15:55:44 | 显示全部楼层
回复【4楼】simms01:
---------------------------------
不要过多的依赖于例程,多看看库函数,官方库函数讲解的很明白。归根结底还是操作的寄存器,如果对寄存器理解的透彻,直接像51那样操作寄存器,你会发现更简单
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-13 07:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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