探索者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的理解有问题,求解。??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
bd214789
1楼-- · 2019-07-21 03:19
意思是例程是向LCD->LCD_REG和LCD->LCD_RAM赋值;而我是向LCD_REG和LCD_RAM赋值,后者会出现问题。有人为我解答吗?我有点困扰
bd214789
2楼-- · 2019-07-21 07:34
求大神,一个人都无吗我哭了
正点原子
3楼-- · 2019-07-21 12:21
你的楼主位代码没问题,貌似安富莱他们就是用 的这种方式,所以,肯定是可以的。
至于你读不正确,看看其他地方的配置吧。
bd214789
4楼-- · 2019-07-21 14:35
 精彩回答 2  元偷偷看……

一周热门 更多>