SDRAM部分数据读取错误,是什么原因

2019-07-20 18:52发布

MCU位stm32f429,外部SDRAM是16M。配置除了刷新周期和正点原子例程不一样,其余都是一样的。(由于内存大小不一样,算出来的刷新周期也不一样)。

void fsmc_sdram_test(void)     //测试程序
{  
        u32 i=0;            
        u32 temp=0;                                                       
        for(i=0;i<8*1024*1024;i+=8*1024)
        {
                *(vu32*)(Bank5_SDRAM_ADDR+i)=temp;
                temp++;
        }
        for(i=0;i<8*1024*1024;i+=8*1024)
        {       
                  temp=*(vu32*)(Bank5_SDRAM_ADDR+i);
                        printf("%d ",temp);
        }                                         
}
上面测试程序的结果是:1024个数据,有5~20个数据是错误的,其余都正常。
有没有可能是在自刷新的时候,MCU还在写入数据,导致读出来的数据出错了?       

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