如题所述
第1个回答 2019-08-30
#define
LCD_BASE
((u32)(0x60000000
|
0x0001FFFE))
//一个32位的
无符号整数
:0x6001FFFE
#define
LCD
((LCD_TypeDef
*)
LCD_BASE)
将地址0x6001FFFE
强制转换
成LCD_TypeDef类型的地址
用
LCD_TypeDef
*p
=
LCD;
printf("%p\n",
p);
可以输出
6001FFFE
LCD_BASE
((u32)(0x60000000
|
0x0001FFFE))
//一个32位的
无符号整数
:0x6001FFFE
#define
LCD
((LCD_TypeDef
*)
LCD_BASE)
将地址0x6001FFFE
强制转换
成LCD_TypeDef类型的地址
用
LCD_TypeDef
*p
=
LCD;
printf("%p\n",
p);
可以输出
6001FFFE
第2个回答 2020-02-11
LCD_TypeDef结构体,一共4字节,2个成员都是2字节的。
宏定义,其实就是定义一个
LCD_TypeDef结构体常量,最后一句是强制类型转换。
0x60000000
|
0x0001FFFE==0x6001FFFE,其实相当于分别给
LCD_TypeDef结构体的LCD_REG赋值为0x6001、LCD_RAM赋值为0xFFFE
宏定义,其实就是定义一个
LCD_TypeDef结构体常量,最后一句是强制类型转换。
0x60000000
|
0x0001FFFE==0x6001FFFE,其实相当于分别给
LCD_TypeDef结构体的LCD_REG赋值为0x6001、LCD_RAM赋值为0xFFFE