中级会员
 
- 积分
- 284
- 金钱
- 284
- 注册时间
- 2013-9-24
- 在线时间
- 52 小时
|
void FSMC_SRAM_WriteBuffer(u8* pBuffer,u32 WriteAddr,u32 n)
{
for(;n!=0;n--)
{
*(vu8*)(Bank1_SRAM3_ADDR+WriteAddr)=*pBuffer;
WriteAddr++;
pBuffer++;
}
}
void FSMC_SRAM_ReadBuffer(u8* pBuffer,u32 ReadAddr,u32 n)
{
for(;n!=0;n--)
{
*pBuffer++=*(vu8*)(Bank1_SRAM3_ADDR+ReadAddr);
ReadAddr++;
}
}
for(i=0;i<1024*1024;i+=4096)
{
FSMC_SRAM_WriteBuffer(&temp,i,1);
temp++;
}
for(i=0;i<1024*1024;i+=4096)
{
FSMC_SRAM_ReadBufferffer(&temp,i,1);
}
就是用这个原子哥的测试程序,发现FSMC_SRAM_ReadBufferffer(&temp,0,1);的时候,读出的是0X40,不是0X00。
如果把for(i=0;i<1024*1024;i+=4096)改成for(i=0;i<1024*1024;i+=4095)就是正确的,请问是什么原因啊?
|
-
原理图
|