sram例程里的FSMC_SRAM_WriteBuffer()程序里WriteAddr+=2改成WriteAddr++我知道了。这个我也仿真测试了,但是我现在遇到个问题,就是我不给外部SRAM赋值,然后读它的字节,为什么里面的数不是全0或者全1呢。每次断电再上电,显示的数据就不同了,这个是属于SRAM正常现象吗?
//for(ts=0;ts<250000;ts++)testsram[ts]=0x11223344;//赋值语句去掉
FSMC_SRAM_ReadBuffer(c,1000,6);
LCD_ShowxNum(60,200,c[0],6,16,0);
LCD_ShowxNum(60,220,c[1],6,16,0);
LCD_ShowxNum(60,240,c[2],6,16,0);
LCD_ShowxNum(60,260,c[3],6,16,0);
LCD_ShowxNum(60,280,c[4],6,16,0);
LCD_ShowxNum(60,300,c[5],6,16,0);
还有一点不明白,在初始化中 :
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;//存储器数据宽度为16位
按照你咋tft显示实验中的说法,当Bank1接的是16位宽宽度的存储器时:HAADR[25-1]对应FSMC[24-0],如果是一个字节一个字节的写外部SARM,比如说写SRAM的地址0和地址1的时候FSMC-A0电平应该是不会变化的,写到地址2的是FSMC-A0的电平才会变化,也就是说写地址0和1的时候FSMC-A地址线的电平时相同的,这时候外部SRAM只能通过UB和LB电平来区别是地址0还是1?原子哥,我这么理解对面,我去试验下。
|