你好我好大家好! 发表于 2015-6-30 14:10:54

*(u16*)Address 是什么意思啊?求大神解释

   在读stm32的FLASH中的数据的时候遇到了这个表达式:*(u16*)Address,一直搞不明白是什么意思,求大神们指点啊,谢了

creep 发表于 2015-6-30 14:26:39

将地址转换为指针,为了读取flash相应地址上的数据。

ts2000 发表于 2015-6-30 15:37:18

地址指针:)

QianFan 发表于 2015-6-30 16:11:33

unsigned short *pa = (unsigned short *)Address;
*pa = 0x12345678;

你好我好大家好! 发表于 2015-6-30 18:00:54

creep 发表于 2015-6-30 14:26
将地址转换为指针,为了读取flash相应地址上的数据。

(u16*)起的什么作用啊

creep 发表于 2015-6-30 18:07:49

你好我好大家好! 发表于 2015-6-30 18:00
(u16*)起的什么作用啊

(u16*)将flash上的某个地址强制转化为u16类型的指针,然后*(u16*)就可以到该地址取值了。

creep 发表于 2015-6-30 18:13:42

本帖最后由 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)

54chenjq 发表于 2015-6-30 21:28:03

涨姿势了

你好我好大家好! 发表于 2015-7-1 08:06:40

creep 发表于 2015-6-30 18:13
一些外设的操作基本都是这样定义了,只是定义的类型不同,寄存器多采用将一个地址强制转换为某个结构体类型 ...

明白了,谢谢

你好我好大家好! 发表于 2015-7-1 08:07:02

creep 发表于 2015-6-30 18:13
一些外设的操作基本都是这样定义了,只是定义的类型不同,寄存器多采用将一个地址强制转换为某个结构体类型 ...

明白了,谢谢你         
页: [1] 2
查看完整版本: *(u16*)Address 是什么意思啊?求大神解释