|
最近我在学习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位对齐会怎样?
请高手指点。谢谢。
|
|