战舰版里的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呢,偏移又是多少
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
是可以的,但你怎么和FSMC的时序同步?时序不同步就不行了,不过如果你只是写数据,不写指令的话,数据还是可以同步的。
回复【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)?
---------------------------------
1.写指令你知道什么时候FSMC发么?有时候FSMC静默的时候也会发无聊数据的,因为这个是硬件总线,你软件有时候控制不到,虽然你可以RS为1或者0,但你1或者0后你不知道FSMC什么时候会发,除非你1或者0后延时一段时间。
2.看你用那根地址线,如果是FSMC_A0的话,就是0x6c000000了,不是的话,就要算地址,STM32内部的FSMC地址是向右便宜一个位操作,你算的时候要反过来向左偏移一个位来算。
3.是的
---------------------------------
非常感谢!!!
---------------------------------
怪不得这么客气。。。
一周热门 更多>