arm: tm4c1294
sp flash: n25q128
SSI1_BASE
MAP_SSIConfigSetExpClk(SSI1_BASE,120000000,SSI_FRF_MOTO_MODE_0,SSI_MODE_MASTER,10000000,8);
———————————————————————————————————————————————————
代码如下:
for(i=0;i<4096;i++)
SPIFlashSectorErase(SSI1_BASE,i*4096);
for(i=0;i<4096;i++)
{
SPIFlashFastRead(SSI1_BASE,i*4096,buff,4096);
for(j=0;j>4096;j++)
if(buff[j]!=0xff)
break;
}
发现删除删除128*4096之后,读取扇区128*4096则数据不是0xff.
这是什么原因造成的?
擦除0-127扇区,则数据体都是0xff.
xyz549040622:
擦除是以扇区为单位进行的。至于你这句的表述,不是很懂。总共128个扇区,1个扇区几个字节呢?FLASH型号是什么呢?
发现删除删除128*4096之后,读取扇区128*4096则数据不是0xff.
这是什么原因造成的?
擦除0-127扇区,则数据体都是0xff.
user4766611:
回复 xyz549040622:
N25Q128
一共4096 sector;
一个sector4096byte
xyz549040622:
回复 user4766611:
你的意思懂了,有可能是你的SPIFlashSectorErase这个函数的第二个参数,i超过127后计算出现错误了,看不到你里面的函数是如何写的,无法判断,建议贴出代码看看。
user4766611:
回复 xyz549040622:
非常感谢,这个是标准库函数,我没有修改的。