//LCD地址结构体
typedef struct
{
u16 LCD_REG;
u16 LCD_RAM;
} LCD_TypeDef;
//使用NOR/SRAM的 BANK 4,地址位HADDR[27,26]=11 A10作为数据命令区分线
//注意设置时STM32内部会右移一位对其! 111110=0X3E
#define LCD_BASE ((u32)(0x60000000 | 0x0C0007FE)) //
#define LCD ((LCD_TypeDef *) LCD_BASE)
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
{
LCD->LCD_REG = LCD_Reg;//写入要写的寄存器序号
LCD->LCD_RAM = LCD_RegValue;//写入数据
}
//////////////////////////////////////////////////////////////////////////////
以上程序片段是摘自原子的代码,以下是我个人的理解,请鉴定对否!
LCD->LCD_REG = LCD_Reg; //这个语句操作时,对外的地址指针是 0x6C0007FE ,因为A10在地址线上的映射是 PG0脚,PG0接到LCD的A0(或RS)脚,bit10为1那么A0(或RS)脚电平为高;
LCD->LCD_RAM = LCD_RegValue; //这个语句操作时,因为结构体指针运算的关系,对外的地址指针是0x6C000800,那么A10接到LCD的A0(或RS)脚的电平就为低了。。。
|