关于FSMC控制LCD的问题

2019-07-21 05:11发布





//LCD地址结构体typedef struct{        vu16 LCD_REG;        vu16 LCD_RAM;} LCD_TypeDef;//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令区分线//注意设置时STM32内部会右移一位对其!      #defineLCD_BASE        ((u32)(0x6C000000 | 0x000007FE))
#defineLCD             ((LCD_TypeDef *)LCD_BASE)
LCD_BASE,须根据外部电路的连接来确定,如Bank1.sector4就是从地址0X6C000000开始,而0X000007FE,则是A10的偏移量。以A10为例,7FE换成二进制为:1111111 1110,而16位数据时,地址右移一位对齐,对应到地址引脚,就是:A10:A0=0111111 1111,此时A10是0,但是如果16位地址再加1(对应到8位地址是加2,即7FE+0X02),那么:A10:A0=1000000 0000,此时A10就是1了,即实现了对RS的0和1的控制
LCD_TypeDef结构体地址,那么可以得到LCD->LCD_REG的地址就是0X6C00,07FE,对应A10的状态为0(即RS=0),而LCD->LCD_RAM的地址就是0X6C00,0800(结构体地址自增),对应A10的状态为1(即RS=1),从而实现对RS的控制。
(疑问)。。。。。。。。
是不是在把LCD看作有2个地址的SRAM,访问7FE的时候就给LCD写命令,访问800的时候给LCD写数据,那写的命令或者数据在LCD的地址不是不知道了嘛

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。