一、LCD地址結構體
typedef struct
{
u16 LCD_REG;
u16 LCD_RAM;
} LCD_TypeDef;
//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A6作爲數據命令區分線
//注意設置時STM32內部會右移一位對其! 111 1110=0X7E
#define LCD_BASE ((u32)(0x6C000000 | 0x0000007E))
#define LCD ((LCD_TypeDef *) LCD_BASE)
1、LCD爲指針強制類型轉換,指向NE4(Bank1第四區)A6。
2、爲什麼會右移一位?
因爲當Bank1
接的是16
位寬度存儲器的時候:HADDR[25:1]-->FSMC[24:0]。
當 Bank1
接的是 8位寬度存儲器的時候:
HADDR[25:0]-->FSMC[25:0]。
而不論外部接8 位/16位寬設備, FSMC_A[0]永遠接在外部設備地址A[0]。這裏, TFTLCD使用的是16 位數據寬度,所以HADDR[0]並沒有用到,只有HADDR[25:1]是有效的,對應關係變爲:HADDR[25:1]--> FSMC[24:0],相當於右移了一位。另外,HADDR[27:26]的設置,是不需要我們干預的,初始化的時候可以選擇區。
注:1、HADDR是需要轉換到外部存儲器的內部AHB地址線。