探索者FSMC驱动TFTLCD时,FSMC的地址映像问题

2019-07-21 01:56发布

下图为例程中关于FSMC中Bank1第四区地址映像的定义,利用了结构体成员地址自增的原理,使LCD->LCD_REG的地址为0x6C00007E,使LCD->LCD_RAM的地址为0x6C000080。
[mw_shl_code=c,true]typedef struct { u16 LCD_REG; u16 LCD_RAM; } LCD_TypeDef; #define LCD_BASE ((u32)(0x6C000000 | 0x0000007E)) #define LCD ((LCD_TypeDef *) LCD_BASE)[/mw_shl_code] 按本质而言,如果直接指定映像地址,同样也是能够驱动FSMC的
[mw_shl_code=c,true]#define LCD_REG (*(vu32*)0x6C00007E) #define LCD_RAM (*(vu32*)0x6C000080)[/mw_shl_code] 但是这样做就会出现问题,例如在读ID的时候在发出指令后读第二个数据读到的不是0而是0x41,再读也是0x41。是否我对FSMC的理解有问题,求解。??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。