请问如何理解这段代码?

2019-07-15 11:52发布

#define LCD_BASE        ((u32)(0x6C000000 | 0x0000007E))#define LCD             ((LCD_TypeDef *) LCD_BASE)第二句是什么意思?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
meimengxing2014
1楼-- · 2019-07-15 13:33
typedef struct
{
    vu16 CMD_ADDR;
    vu16 DAT_ADDR;                //结构体的地址自动加2为0x6C002000
}LCD_TypeDef;
#define LCD_BASE ((u32)(0x6C000000 | 0x00001FFE))
#define LCD      ((LCD_TypeDef *) LCD_BASE)

你要结合前面的结构体来看,意思是把LCD_BASE这个数强制转换为结构体类型的地址,即结构体的首地址
hyper000
2楼-- · 2019-07-15 16:31
簡單點說 define就是設置一個宏

當你下面的程序遇到 "LCD" 時, = ((LCD_TypeDef *)LCD_BASE) =( (LCD_TypeDef *)((u32)0x6C001FFE) )

例如:
*LCD.DAT_ADDR = 0x1234 ;
= *((LCD_TypeDef *)((u32)0x6C001FFE) ).DAT_ADDR = 0x1234 ;

一周热门 更多>