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条回答
北溟鱼
1楼-- · 2019-10-18 20:42
回复【27楼】正点原子:
---------------------------------
你好,我现在想用A16,偏移地址该如何设置?
Tardis
2楼-- · 2019-10-18 21:51
回复【30楼】北溟鱼:
---------------------------------
很简单,就是A0就是0,你得把0这个数左移一位当作FSMC地址,所以也就0了,A1是1,左移一位就是2,减去1作为地址,二进制是1,也就是0x00000001. 
A10二进制是10000000000,也就是0x400,减去1,也就是01111111111,也就是0x3FF,然后STM32是右移一位操作的,所以写程序的时候,你得把地址预先左移一位,0x3FF左移以为也就是二进制011111111110,也就是0x7FE,同理A16就是1FFFE了
北溟鱼
3楼-- · 2019-10-19 00:07
回复【33楼】Tardis:
谢谢,我也是这么想的。还有个问题想问你。例程中LCD屏的的CS接FSMC_NE4,RS接FSMC_A10,对应开发板上也就是PG12,和PG0。现在我想把程序改为CS接FSMC_NE1,RS接FSMC_A16,对应开发板上PD7,和PD11。程序部分我把
lcd.h中的#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE))改为:
             #define LCD_BASE        ((u32)(0x60000000 | 0x0001FFFE))
把lcd.c中的FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM4;//  这里我们使用NE4 ,也就对应BTCR[6],[7]
改为:FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
   把 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);  // 使能BANK1 
改为 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);  // 使能BANK1 

我想问一下,这样改有错吗?但为啥屏幕只是白屏,什么都不显示,还是还有其他地方需要改动?
北溟鱼
4楼-- · 2019-10-19 01:50
回复【32楼】正点原子:
---------------------------------

谢谢原子,还有个问题想问你。例程中LCD屏的的CS接FSMC_NE4,RS接FSMC_A10,对应开发板上也就是PG12,和PG0。现在我想把程序改为CS接FSMC_NE1,RS接FSMC_A16,对应开发板上PD7,和PD11。程序部分我把
lcd.h中的#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE))改为:
             #define LCD_BASE        ((u32)(0x60000000 | 0x0001FFFE))
把lcd.c中的FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM4;//  这里我们使用NE4 ,也就对应BTCR[6],[7]
改为:FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
   把 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);  // 使能BANK1 
改为 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);  // 使能BANK1 

我想问一下,这样改有错吗?但为啥屏幕只是白屏,什么都不显示,还是还有其他地方需要改动?很着急
正点原子
5楼-- · 2019-10-19 05:44
回复【35楼】北溟鱼:
---------------------------------
地址没错,后续的库函数就不知道了,我用寄存器的.
北溟鱼
6楼-- · 2019-10-19 09:50
 精彩回答 2  元偷偷看……

一周热门 更多>