战舰版里的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呢,偏移又是多少
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
很简单,就是A0就是0,你得把0这个数左移一位当作FSMC地址,所以也就0了,A1是1,左移一位就是2,减去1作为地址,二进制是1,也就是0x00000001.
A10二进制是10000000000,也就是0x400,减去1,也就是01111111111,也就是0x3FF,然后STM32是右移一位操作的,所以写程序的时候,你得把地址预先左移一位,0x3FF左移以为也就是二进制011111111110,也就是0x7FE,同理A16就是1FFFE了
一周热门 更多>