STM32的FSMC地址为什么与预期的一不样

[复制链接]
4072|9
 楼主| tomhe666 发表于 2011-5-14 09:09 | 显示全部楼层 |阅读模式
本帖最后由 tomhe666 于 2011-5-14 11:52 编辑

我用FSMC驱动彩屏液晶, 用了STM32的FWLIB 3.5库, 连接LCD用了FSMC的D0-D15, A16,A17, WR,RD等信号, A16接LCD的CS信号, A17接LCD的CD(cmd/data, CMD=0,DATA=1)信号, FSMC选用SRAM_BANK1, 于是得到了LCD的命令地址为(SRAM3_BANK1_ADDR + 0x00000), 数据地址为(SRAM3_BANK1_ADDR + 0x20000),但按这个地址始终点不亮液晶. 于是单步时拿示波器看,CD的信号出现在CS引脚上, CD脚本身却一直是低的, 看来看去,像是地址错了一位,于是把数据地址改成(SRAM3_BANK1_ADDR + 0x40000)试了下, 屏竟然点亮了. 以为地址算错, 再仔细算算0x20000应该是对的啊, A16接的CS,不论何时都是低的,A1所以A16总是为零的, A17是第三个字节的bit1, 这个地址确切的应该是(SRAM3_BANK1_ADDR + 0x20000)才对,实在搞不表怎么回事.有明白的请指点下. LCD访问代码见下
#define SRAM_BASEADDR   (UINT32)(0x68000000) //Bank1_NORSRAM3 = 0x68000000
#define LCD_CMD_ADDR    ((SRAM_BASEADDR)+0x00000)
#define LCD_DATA_ADDR   ((SRAM_BASEADDR)+0x40000) //地址左移了一位,原因不明

#define LCD_WRITE_CMD(CMD)   (*((volatile UINT16*)LCD_CMD_ADDR))=CMD
#define LCD_WRITE_DATA(DATA) (*((volatile UINT16*)LCD_DATA_ADDR))=DATA
#define LCD_READ_DATA(ADDR)  (*((volatile UINT16*)ADDR))
 楼主| tomhe666 发表于 2011-5-15 12:17 | 显示全部楼层
没有答案??
winloop 发表于 2011-5-15 12:33 | 显示全部楼层
数据宽度设置成8位的就跟实际地址一样了
 楼主| tomhe666 发表于 2011-5-15 15:22 | 显示全部楼层
有这个说法?? LCD是16位的,总不能改成8位吧
winloop 发表于 2011-5-15 15:53 | 显示全部楼层
那你只能用16位方式了,实际地址是要左移一位的,这块儿我也碰到不少问题,其实模拟16位总线操作LCD速度也非常快的
 楼主| tomhe666 发表于 2011-5-15 20:34 | 显示全部楼层
那你只能用16位方式了,实际地址是要左移一位的,这块儿我也碰到不少问题,其实模拟16位总线操作LCD速度也非常快的
winloop 发表于 2011-5-15 15:53



LCD我已经弄的能显示了,只是不明白为什么地址要左移一位??
IJK 发表于 2011-5-16 09:52 | 显示全部楼层
“地址要左移一位” 这是正常现象。reference manual有1张表谈到这个问题,16位方式时,内部的A0应该不输出,内部的A1应该输出到引脚的A0,以此类推。
16位方式时,如果内部的A0还输出到引脚的A0,那就不是16位方式了。
香水城 发表于 2011-5-16 10:00 | 显示全部楼层
16位模式下,内部的地址A0时钟为"0“,没有必要输出一个无用的信号,这样可以多出一个I/O口。
 楼主| tomhe666 发表于 2011-5-16 13:20 | 显示全部楼层
“地址要左移一位” 这是正常现象。reference manual有1张表谈到这个问题,16位方式时,内部的A0应该不输出,内部的A1应该输出到引脚的A0,以此类推。
16位方式时,如果内部的A0还输出到引脚的A0,那就不是16位方式 ...
IJK 发表于 2011-5-16 09:52


有点懂了,是不是这样, 16位模式下, 两个字节作为一组16bit的数据输出,所以最低位的A0总是不变的,所以A0引不引出来无所谓了.
但至于左移一位省不省IO却很难说了, 因为地址如果从A0排起, 也可以省下一根高位的地址线的吧
yinyangdianzi 发表于 2011-5-18 09:27 | 显示全部楼层
动态的
it's keeping moving
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

108

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部