欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3395|回復: 5
收起左側

如何判斷flash內存是否寫入過數據

[復制鏈接]
ID:585428 發表于 2021-4-16 08:48 | 顯示全部樓層 |閱讀模式
求教。我想將設備的初始化數據寫入到w25q128這款flash內存中,但因為初始化的數據不是永遠不變的,個人可以根據需要修改,然后將新的數據保存。

所以我想做一個初始化判斷,如果芯片沒有寫入過數據,那么導入初始化數據,如果寫入過數據,那么就讀取寫入的數據。
已知w25q128這款芯片初始狀態時,每一位存儲的都是1。所以我做了一個簡單的判斷,但是我覺得不是特別保險。
請問有沒有人做過這方面,有更好的方案。謝謝分享。
下面是我的代碼:
  1. u8 datatemp[8];
  2.         W25QXX_Read((u8*)datatemp,0X000000,8); //起始地址0號扇區,讀取數據,并賦值給datatemp數組
  3. if(datatemp[0]!=0XFF)  //不等于0xFF,說明有用戶保存的數據,那么不再初始化
  4. {
  5. }
  6. else //等于0xFF=》進行初始化設置
  7. {
  8. }
復制代碼




回復

使用道具 舉報

ID:388929 發表于 2021-4-16 09:15 | 顯示全部樓層
真正的儲存由第二個扇區開始,第一扇區留著做記號,每次程序判斷時就去讀那個記號就好,有記號就寫過,沒記號就沒寫過
回復

使用道具 舉報

ID:585428 發表于 2021-4-16 09:22 | 顯示全部樓層
billaj 發表于 2021-4-16 09:15
真正的儲存由第二個扇區開始,第一扇區留著做記號,每次程序判斷時就去讀那個記號就好,有記號就寫過,沒記 ...

了解了,您這個方式比我的做法好很多。謝謝
回復

使用道具 舉報

ID:213173 發表于 2021-4-16 10:31 | 顯示全部樓層
方法其實有很多,樓上已提供了一種方法。再比如你保存的數據在某范圍之內,讀取后判斷其是否在有效范圍之內,否則無效就寫入新數據。亦或用數據串的形式保存,加入一個字節的驗證碼更保險。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:584814 發表于 2021-4-16 11:00 | 顯示全部樓層
想知道有沒有寫過,就是做標記,你可以將新器件先寫滿0或1。
但這種辦法也有問題,比如你寫滿了0或1而你新寫的也正好是全0或1.....
所以要根據自己的實際要求去做。要是寫文檔什么的搞個標記有個意思就可以了。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:585428 發表于 2021-4-16 11:19 | 顯示全部樓層
wulin 發表于 2021-4-16 10:31
方法其實有很多,樓上已提供了一種方法。再比如你保存的數據在某范圍之內,讀取后判斷其是否在有效范圍之內 ...

您的這種加校驗位的方法確實更加的嚴謹,能夠更好的防止意外情況的發生。謝謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表