微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请问如何理解这段代码?

请问如何理解这段代码?

时间:10-02 整理:3721RD 点击:

#define LCD_BASE        ((u32)(0x6C000000 | 0x0000007E))

#define LCD             ((LCD_TypeDef *) LCD_BASE)

第二句是什么意思?


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这个数强制转换为结构体类型的地址,即结构体的首地址

簡單點說 define就是設置一個宏
當你下面的程序遇到 "LCD" 時, = ((LCD_TypeDef *)LCD_BASE) =( (LCD_TypeDef *)((u32)0x6C001FFE) )
例如:
*LCD.DAT_ADDR = 0x1234 ;
= *((LCD_TypeDef *)((u32)0x6C001FFE) ).DAT_ADDR = 0x1234 ;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top