*(u16*)Address 是什么意思啊?求大神解释
在读stm32的FLASH中的数据的时候遇到了这个表达式:*(u16*)Address,一直搞不明白是什么意思,求大神们指点啊,谢了将地址转换为指针,为了读取flash相应地址上的数据。 地址指针:) unsigned short *pa = (unsigned short *)Address;
*pa = 0x12345678; creep 发表于 2015-6-30 14:26
将地址转换为指针,为了读取flash相应地址上的数据。
(u16*)起的什么作用啊 你好我好大家好! 发表于 2015-6-30 18:00
(u16*)起的什么作用啊
(u16*)将flash上的某个地址强制转化为u16类型的指针,然后*(u16*)就可以到该地址取值了。 本帖最后由 creep 于 2015-6-30 18:16 编辑
一些外设的操作基本都是这样定义了,只是定义的类型不同,寄存器多采用将一个地址强制转换为某个结构体类型,归根结底都是操作某个地址上数据。
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB_BASE (AHB1PERIPH_BASE + 0x0400)
#define AHB1PERIPH_BASE (PERIPH_BASE + 0x00020000)
#define PERIPH_BASE ((uint32_t)0x40000000)
涨姿势了 creep 发表于 2015-6-30 18:13
一些外设的操作基本都是这样定义了,只是定义的类型不同,寄存器多采用将一个地址强制转换为某个结构体类型 ...
明白了,谢谢 creep 发表于 2015-6-30 18:13
一些外设的操作基本都是这样定义了,只是定义的类型不同,寄存器多采用将一个地址强制转换为某个结构体类型 ...
明白了,谢谢你
页:
[1]
2