OpenEdv-开源电子网

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

请教一个DMA传输地址的小问题

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-6-6
在线时间
0 小时
发表于 2013-6-13 22:01:40 | 显示全部楼层 |阅读模式
我定义了两个32位的数组
u32 SRC_Const_Buffer[BufferSize ] =
{
    0x01020304,0x05060708,0x090A0B0C,0x0D0E0F10,
    0x11121314,0x15161718,0x191A1B1C,0x1D1E1F20,
    0x21222324,0x25262728,0x292A2B2C,0x2D2E2F30,
    0x31323334,0x35363738,0x393A3B3C,0x3D3E3F40,
    0x41424344,0x45464748,0x494A4B4C,0x4D4E4F50,
    0x51525354,0x55565758,0x595A5B5C,0x5D5E5F60,
    0x61626364,0x65666768,0x696A6B6C,0x6D6E6F70,
    0x71727374,0x75767778,0x797A7B7C,0x7D7E7F80
};
u32 DST_Buffer[BufferSize ];
第一个为DMA传输数据来源,第二个为传输目的地
但是在配置DMA函数时,
DMA_InitStructure.DMA_PeripheralBaseAddr =(u32)SRC_Const_Buffer;
    DMA_InitStructure.DMA_MemoryBaseAddr =(u32)DST_Buffer;
都要将这两个数组强制转换成U32,不然编译时就会报错:src\main.c(267): error:  #513: a value of type "uc32 *" cannot be assigned to an entity of type "u32";
我就是想问下我一开始定义这2个数组时就定义为U32,为什么还需要再强制转换成U32,这不是多此一举吗???
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-13 22:22:08 | 显示全部楼层
指针要好好学学.楼主数组的首地址,是叫指针了...不是简单的u32了...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-6-6
在线时间
0 小时
 楼主| 发表于 2013-6-14 10:53:19 | 显示全部楼层
想再请教下,DMA_InitStructure.DMA_PeripheralBaseAddr =(u32)SRC_Const_Buffer;
设置外设地址,SRC_Const_Buffer是一个数组,数组名就代表了这个数组的首地址,而且我用MDK在线编译了一下,没进行强制转换,看到SRC_Const_Buffer就等于0x20000014;为什么要强制转换呢?
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-6-6
在线时间
0 小时
 楼主| 发表于 2013-6-14 10:53:54 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
想再请教下,DMA_InitStructure.DMA_PeripheralBaseAddr =(u32)SRC_Const_Buffer; 
设置外设地址,SRC_Const_Buffer是一个数组,数组名就代表了这个数组的首地址,而且我用MDK在线编译了一下,没进行强制转换,看到SRC_Const_Buffer就等于0x20000014;为什么要强制转换呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-14 12:28:52 | 显示全部楼层
回复【3楼】zhuangshengen:
---------------------------------
因为为mdk会报错啊,这类是编译器问题了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-18 19:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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