OpenEdv-开源电子网

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

今天看了下DMA

[复制链接]

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2012-12-27 15:55:39 | 显示全部楼层 |阅读模式
u32 DR_Base;  //做缓冲用,不知道为什么.非要不可
 RCC->AHBENR|=1<<0;//开启DMA1时钟
 DR_Base=cpar;
 DMA_CHx->CPAR=DR_Base;   //DMA1 外设地址

都说做缓冲用了,为什么还说不知道为什么呢
RCC->AHBENR|=1<<0;//开启DMA1时钟
__nop(); 
 __nop();
  DMA_CHx->CPAR=DR_Base;   //DMA1 外设地址
表示可行。一个nop有时行,有时不行,估计是需要等待DMA稳定

随便提个问题,外设的地址怎么来呢?如果我用ADC1,那地址是什么?详细说明下,灰常感谢



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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-12-27 20:54:27 | 显示全部楼层
回复【楼主位】tian123chi:
---------------------------------
这个是老版本的代码了。
现在知道为什么了,是因为DMA开启时钟后要等待一点时间,才能开始其他配置,否则不能成功!
外设地址,你得去STM32参考手册,找到对应外设,都有地址的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-20 04:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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