spi flash偶爾出現寫入錯誤的情況


spi flash W25Q128會偶爾出現寫入錯誤的情況,會發現讀出的值和寫入的值不一致,需加入2次讀出比較判斷。

W25QXX_Read(&temp_date_count,0x000000,1);
	//W25QXX_Write((u8*)&temp_date,0x400000,135);
	//W25QXX_Read((u8*)&temp_data_test,0x400000,135);

	W25QXX_Write((u8*)&temp_date,(temp_date_count*135+1),135);
	W25QXX_Read((u8*)&temp_data_test,(temp_date_count*135+1),135);
	if(memcmp(&temp_date,&temp_data_test,135)!=0)
	{
		W25QXX_Write((u8*)&temp_date,(temp_date_count*135+1),135);
		W25QXX_Read((u8*)&temp_data_test,(temp_date_count*135+1),135);
		if(memcmp(&temp_date,&temp_data_test,135)!=0)
		{
			W25QXX_Write((u8*)&temp_date,(temp_date_count*135+1),135);
		}
	}
	temp_date_count=temp_date_count+1;//Each time a structure is written
	if(temp_date_count==60) 
	{
		temp_date_count=0;
	}
	W25QXX_Write(&temp_date_count,0,1);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM