2598|2

419

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

数组地址 [复制链接]

最近我在学习STM32F429-Discovery的TFT控制器。我看了官方的例程,有个地方让我有点疑惑。

  /* Start Address configuration : frame buffer is located at FLASH memory */
  pLayerCfg.FBStartAdress = (uint32_t)&ST_LOGO_1;

这是设置FrameBuffer的起始地址,ST_LOGO_1是一个数组,里面存放一张图片。

const uint16_t ST_LOGO_1[38400]

我疑惑的是:
1.  数组名本身不就是地址嘛,为啥还要加&。如下这样就可以啊。
  pLayerCfg.FBStartAdress = (uint32_t)ST_LOGO_1;
我把&去掉,编译没问题,运行也没问题。如果非要用&,可以取数组一个元素的地址。
  pLayerCfg.FBStartAdress = (uint32_t)&ST_LOGO_1[0];

2. 如果uint16_t这个数组不是32位对齐会怎样?

请高手指点。谢谢。
此帖出自stm32/stm8论坛

最新回复

楼上是正解。  详情 回复 发表于 2016-2-18 19:08
点赞 关注
 

回复
举报

6040

帖子

197

TA的资源

版主

沙发
 
本帖最后由 lcofjp 于 2016-2-18 13:21 编辑

1. 数组名和数组名取地址是等同的,值相同,但是类型不同,数组有他自己的size,取地址之后就是个指针了。
2. 不在那个地址中解引用32位数据,就可以不是32位对齐的。
此帖出自stm32/stm8论坛
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
楼上是正解。
此帖出自stm32/stm8论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表