TFT的RS端地址偏移量请教

2019-10-14 21:11发布

战舰版里的TFT使用FSMC来显示数据,使用FSMC_A10控制RS端,
//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A1作为数据命令区分线
//注意设置时STM32内部会右移一位对其! 111110=0X3E      
#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)
这个使用A10的地址偏移是0x000007FE,这个是怎么算的?
加入我使用A0呢,偏移又是多少
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
Tardis
1楼-- · 2019-10-16 09:27
回复【12楼】chun307:
---------------------------------
是可以的,但你怎么和FSMC的时序同步?时序不同步就不行了,不过如果你只是写数据,不写指令的话,数据还是可以同步的。
chun307
2楼-- · 2019-10-16 14:37
回复【13楼】Tardis:

回复【12楼】chun307:
---------------------------------
是可以的,但你怎么和FSMC的时序同步?时序不同步就不行了,不过如果你只是写数据,不写指令的话,数据还是可以同步的。

---------------------------------
谢谢您的回答 不过我还有疑惑:
1,为什么写数据可以 写指令不行呢?不是RS可以为1或0吗?
2,另外,如果选择为bank1.sector4,基地址为:0x6c00 0000。那么LCD对应的地址就是这个(0x6c00 0000)了吗?
3,如果是FSMC操作RAM,RAM有地址线,并且RAM地址线和FSMC一一对应,那么操作RAM的基地址是不是就是这个sector的基地址(比如bank1.sector4的    0x6c00 0000)?
Tardis
3楼-- · 2019-10-16 18:41
回复【14楼】chun307:
---------------------------------
1.写指令你知道什么时候FSMC发么?有时候FSMC静默的时候也会发无聊数据的,因为这个是硬件总线,你软件有时候控制不到,虽然你可以RS为1或者0,但你1或者0后你不知道FSMC什么时候会发,除非你1或者0后延时一段时间。
2.看你用那根地址线,如果是FSMC_A0的话,就是0x6c000000了,不是的话,就要算地址,STM32内部的FSMC地址是向右便宜一个位操作,你算的时候要反过来向左偏移一个位来算。
3.是的
chun307
4楼-- · 2019-10-16 23:32
回复【15楼】Tardis:
---------------------------------
非常感谢!!!
Tardis
5楼-- · 2019-10-17 01:29
 精彩回答 2  元偷偷看……
chun307
6楼-- · 2019-10-17 04:24
回复【17楼】Tardis:
---------------------------------
怪不得这么客气。。。

一周热门 更多>