FSMC每次读写数据时要地址是要+1还是加2?原理何在?

2019-07-21 04:41发布

我写了一个原子开发板读写SRAM的程序,我没有按照例程的读写数据时每次地址加2,但是读写正常。我就纳闷了,原子的例程不是说配置成16位数据模式地址需要每次加2吗,但是我加的是1啊,怎么就显示正常了啊,应该是不正常啊。。。跪求大神解释。万分感谢!!!!!!!!!!!

FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;           //存储器数据宽度为16位

/***************************
                          写数据     
***************************/
void SRAM_Write(u8* pBuffer,u32 WriteAddr)
{
               
  *(vu8*)(Bank1_SRAM3_ADDR+WriteAddr)=*pBuffer;  
}   /***************************
            读数据    
***************************/
void SRAM_Read(u8* pBuffer,u32 ReadAddr)
{           
  *pBuffer=*(vu8*)(Bank1_SRAM3_ADDR+ReadAddr);   
}
/**************************
    向指定地址写一个字节
**************************/ void fsmc_sram_test_write(u8 data,u32 addr)
{     
 SRAM_Write(&data,addr);
} /**************************
      向指定地址读一个字节   
**************************/
u8 fsmc_sram_test_read(u32 addr)
{
 u8 data;
 SRAM_Read(&data,addr);
 return data;



  fsmc_sram_test_write(0x05,0x01);       //向地址0x01写数据0x05
  fsmc_sram_test_write(0x06,0x02);       //向地址0x02写数据0x06

  data_SRAM1= fsmc_sram_test_read(0x01);   //读地址0x01的数据
  data_SRAM2= fsmc_sram_test_read(0x02);  //读地址0x02的数据

    
  LCD_ShowxNum(30,70,data_SRAM1,6,16,0); //显示地址0x01存储的数据
  LCD_ShowxNum(30,100,data_SRAM2,6,16,0);  //显示地址0x02存储的数据


程序结果为:5

                     6





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-21 08:10
u8时,加1即可。
u16要加2
u32要加4!
styleno1
2楼-- · 2019-07-21 12:26
 精彩回答 2  元偷偷看……
为你分心
3楼-- · 2019-07-21 15:50
回复【3楼】正点原子:
---------------------------------
我改为u16但是显示结果为:6
                                       6
,这个原理到底是啥,很是不理解,原子哥能不能给我举个例子啊。。谢谢。。。。
为你分心
4楼-- · 2019-07-21 19:44
回复【3楼】正点原子:
---------------------------------
原子哥你好,请问硬件上连接了UB和LB这两根线,是不是数据就只能是8位,不能16位,要是不连接UB和LB这两根线只能是16位,数据位是8位还是16位不是软件决定而是硬件决定的????我想直接16位读写SRAM,能不能行??能行给我个例程,不能行的话有啥原因啊?????

谢谢》》》》》》》》》》》》》
正点原子
5楼-- · 2019-07-21 23:08
回复【5楼】为你分心:
---------------------------------
都可以的。
u8,u16,u32都可以。
为你分心
6楼-- · 2019-07-22 00:25
回复【6楼】正点原子:
---------------------------------
谢谢,,,,我明白了,我程序中原来有初始化的时候有点小问题,现在好了,谢谢。。。。。

一周热门 更多>