// typedef struct
//{
// u16 LCD_REG;
// u16 LCD_RAM;
//} LCD_TypeDef;
//#define LCD_BASE ((u32)(0x6C0007fe))
//#define LCD ((LCD_TypeDef *) LCD_BASE)
//
//
//void LCD_WR_REG(u16 regval)
//{
// LCD->LCD_REG=regval;//写入要写的寄存器序号
//}
////写LCD数据
////data:要写入的值
//void LCD_WR_DATA(u16 data)
//{
//
// LCD->LCD_RAM=data;
//}
上面的代码我想替换成下面的可是不知道为啥行不通谁能帮我一下这两个区别
#define REG *((u32*)(0X6c0007fe))
#define DATA *((u32*)(0x6c000800))
void LCD_WR_REG(u16 regval)
{ REG=regval;
}
void LCD_WR_DATA(u16 regval2)
{ DATA=regval2;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
我懂了 *((volatile u16*)(0X6c000800))这个表示 U16表示 指向的数据类型16位而这个
// typedef struct
//{
// u16 LCD_REG;
// u16 LCD_RAM;
//} LCD_TypeDef;
//#define LCD_BASE ((u32)(0x6C0007fe))
//#define LCD ((LCD_TypeDef *) LCD_BASE)
是把结构体的地址放在 0X6c0007FE;
一个是直接操纵地址里的数
一个是把变量定义到指定的地址在操作
一周热门 更多>