一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣使用Arduino EEPROM在重啟后保存數(shù)據(jù)

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-28 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

您知道Arduino在關(guān)閉時(shí)可以存儲(chǔ)數(shù)據(jù)嗎?草圖不存儲(chǔ)在閃存中。我說的是EEPROM中的可變數(shù)據(jù)。加入我的行列,向我展示如何讀寫它,以及它可以為您的項(xiàng)目做什么。

如果您不熟悉Arduino,請確保閱讀我們的初學(xué)者指南。

什么是EEPROM?

EEPROM代表電可擦可編程只讀存儲(chǔ)器。這是一種非易失性存儲(chǔ)器。如果您不了解任何含義,請不要擔(dān)心。即使沒有電源,它也可以簡單地存儲(chǔ)數(shù)據(jù)(與RAM不同,RAM需要電力才能保留任何數(shù)據(jù))。

EEPROM內(nèi)置于眾多處理器中,例如Matrix Creator Pi HAT中使用的現(xiàn)場可編程門陣列(FPGA)。所有的Arduino都有EEPROM,但容量因型號(hào)而異。請務(wù)必查看我們的購買指南以獲取有關(guān)每塊板的更多詳細(xì)信息。

工作原理?

使用 Fowler-Nordheim隧道對(duì)EEPROM進(jìn)行電擦除和編程。您無需了解技術(shù)細(xì)節(jié)即可使用它?;厩疤崾怯秒妬砀亩M(jìn)制數(shù)據(jù)(什么是二進(jìn)制)??梢噪娮臃绞阶x取,擦除和重寫。

幸運(yùn)的是,Arduino語言可以輕松更改數(shù)據(jù),而無需任何計(jì)算機(jī)科學(xué)學(xué)位。

預(yù)期壽命

雖然在Arduino中易于使用EEPROM,但壽命確實(shí)有限。 EEPROM指定可處理100,000個(gè)讀/擦除周期。這意味著您可以在EEPROM變得不穩(wěn)定之前寫入并擦除/重寫數(shù)據(jù)100,000次。實(shí)際上,取決于每個(gè)處理器的容差,Atmel(Arduino“芯片”的制造商)半導(dǎo)體可以處理更多或更少的循環(huán)次數(shù)。

一旦某個(gè)位置被寫入并擦除了太多次,它就會(huì)開始變得不可靠。它可能無法返回正確的數(shù)據(jù),也可能無法返回相鄰位的值。

這聽起來像很多次寫入,但是如果以編程方式進(jìn)行讀取和寫入(在《例如,strong》 loop )。讀取數(shù)據(jù)不會(huì)降低芯片質(zhì)量,僅寫入會(huì)。您可以無憂無慮地從EEPROM讀取數(shù)據(jù)!

請務(wù)必注意,此限制適用于每個(gè)內(nèi)存位置。您的Arduino在EEPROM中可能有1,000個(gè)或更多可用的存儲(chǔ)位置,因此,如果您對(duì)一個(gè)位置寫入太多次,則只會(huì)影響該位置,而不會(huì)影響其他位置。稍后,我將討論耗損均衡,它可以通過均勻分配數(shù)據(jù)來減少EEPROM的耗損-SSD可以利用這一點(diǎn)。

它有什么用?

EEPROM對(duì)于您的Arduino項(xiàng)目非常有用。由于即使斷電也能記住數(shù)據(jù),因此您可以存儲(chǔ)Arduino的狀態(tài)。也許您可以建造一個(gè)可以記住其位置或剩余多少“彈藥”的激光轉(zhuǎn)塔。您可以使用它來控制設(shè)備,并記錄設(shè)備被激活的次數(shù)。

EEPROM最適合諸如設(shè)置或高分的事情。如果要定期寫入復(fù)雜數(shù)據(jù),則可以考慮使用以太網(wǎng)屏蔽(具有內(nèi)置SD插槽)或Raspberry Pi。

讀寫

現(xiàn)在,理論已成為現(xiàn)實(shí),讓我們看看如何讀寫一些數(shù)據(jù)!首先,包括庫(Arduino IDE隨附):

#include

現(xiàn)在寫入一些數(shù)據(jù):

EEPROM.write(0, 12);

這會(huì)將數(shù)字 12 寫到EEPROM位置 0 。每次寫入需要3.3毫秒( ms ,1000ms = 1秒)。請注意,您不能寫字母( char ),只允許從0到255的數(shù)字。這就是為什么EEPROM非常適合設(shè)置或高分,但不適用于播放器名稱或單詞的原因。可以使用這種方法存儲(chǔ)文本(您可以將字母表中的每個(gè)字母映射到一個(gè)數(shù)字),但是您將需要具有多個(gè)存儲(chǔ)位置-每個(gè)字母一個(gè)位置。

以下是您的閱讀方式該數(shù)據(jù):

EEPROM.read(0);

零是您之前寫入的地址。如果您以前沒有寫過地址,它將返回最大值( 255 )。

有一些更有用的方法可用。假設(shè)您想存儲(chǔ)小數(shù)位或字符串:

EEPROM.put(2,“12.67”);

這會(huì)將數(shù)據(jù)寫入多個(gè)位置,這很容易編寫,但仍然很方便。您仍需要跟蹤已寫入的位置數(shù),以免意外覆蓋數(shù)據(jù)!您必須使用 get 方法再次檢索此數(shù)據(jù):

float f = 0.00f;

EEPROM.get(2, f);

get中的值存儲(chǔ)在浮點(diǎn)型 f 變量。請注意,如何使用 0.00f 作為值進(jìn)行初始化。 f 使編譯器知道您可能希望在此變量中存儲(chǔ)大量數(shù)字,因此它會(huì)在編譯過程中設(shè)置一些其他配置。

Arduino網(wǎng)站上的EEPROM文檔還有更多示例。

磨損平衡

磨損平衡是一種用于減少磨損并延長EEPROM壽命的技術(shù)。如果您僅在一個(gè)小型項(xiàng)目上工作,則不必?fù)?dān)心這一點(diǎn)。

保存EEPROM壽命的最簡單方法是限制您的寫入到特定位置。您可以通過先讀取地址來完成此操作,如果您要寫入的值已經(jīng)存在,則無需再次寫入(請記住,讀取數(shù)據(jù)無害)。操作方法如下:

int safeWrite(int data, address) {

if(EEPROM.read(address) != data) {

EEPROM.write(address, data);

}

}

這是相當(dāng)簡單的代碼,但是僅適用于整數(shù)!不用重新發(fā)明輪子,而是使用Arduino EEPROM庫中內(nèi)置的功能:

EEPROM.update(address, val);

此方法與 write 方法,盡管它可能會(huì)大大減少所需的寫入次數(shù)!

如果您需要寫入大量數(shù)據(jù),并且擔(dān)心芯片消耗wearing盡,則可以跟蹤進(jìn)行多少次寫入,盡管這會(huì)使用更多數(shù)據(jù)。這是偽代碼的粗略實(shí)現(xiàn):

var address = 0

var writeCount = 0

if(writeCount 》 75,000)

writeCount = 0

address += 1

EEPROM.write(address, data)

您將需要將地址和writeCount存儲(chǔ)在EEPROM中(并且writeCount需要在地址位置之間劃分)。在大多數(shù)情況下,將不需要此級(jí)別的保護(hù)。 Arduino也是如此便宜,因此您可能會(huì)發(fā)現(xiàn)購買備份更容易!

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1086

    瀏覽量

    83732
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

    192124
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    FLASH模擬EEPROM

    的片上 FLASH 模擬EEPROM 功能。 1 FLASH 與 EEPROM 簡介 FLASH 和 EEPROM 都為非易失性存儲(chǔ)器,斷電
    發(fā)表于 07-16 15:13

    如何從CYUSB3014-BZXCT讀取/寫入EEPROM固件?

    我有一個(gè) CYUSB3014-BZXCT 芯片,其中保存EEPROM 數(shù)據(jù)。 我還有第二個(gè)空的 CYUSB3014,我想將第一個(gè)芯片的 EEPROM
    發(fā)表于 05-07 06:46

    window10選擇更新并重啟,重啟轉(zhuǎn)圈一晚上,什么原因

    window10選擇更新并重啟,重啟轉(zhuǎn)圈一晚上,什么原因
    發(fā)表于 03-25 10:23

    如何優(yōu)化EEPROM數(shù)據(jù)存儲(chǔ)策略

    EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦除可編程只讀存儲(chǔ)器)是一種非揮發(fā)性存儲(chǔ)器,可以沒有電源的情況下保持數(shù)據(jù)
    的頭像 發(fā)表于 12-16 17:21 ?1374次閱讀

    嵌入式系統(tǒng)中使用EEPROM的優(yōu)缺點(diǎn)

    同時(shí)也存在一些局限性。以下是EEPROM嵌入式系統(tǒng)中使用的優(yōu)缺點(diǎn)分析: 優(yōu)點(diǎn) 非易失性存儲(chǔ) : EEPROM中的數(shù)據(jù)斷電
    的頭像 發(fā)表于 12-16 16:57 ?932次閱讀

    EEPROM嵌入式系統(tǒng)中的應(yīng)用 EEPROM數(shù)據(jù)保護(hù)技術(shù)解析

    于存儲(chǔ)設(shè)備的配置參數(shù),如網(wǎng)絡(luò)設(shè)置、用戶偏好設(shè)置等。這些參數(shù)系統(tǒng)重啟仍然需要保持不變,因此EEPROM提供了一個(gè)理想的存儲(chǔ)
    的頭像 發(fā)表于 12-16 16:37 ?2797次閱讀

    ADS1293EVM保存數(shù)據(jù)時(shí)候,始終只能保存CH1的數(shù)據(jù),而其他chanel的數(shù)據(jù)卻無法保存到txt文件下,怎么解決?

    我購買了ADS1293EVM開發(fā)板,使用官方軟件時(shí)候,無論我怎樣設(shè)置,無論開啟了幾個(gè)通路,當(dāng)我點(diǎn)保存數(shù)據(jù)時(shí)候,始終只能保存CH1的
    發(fā)表于 11-29 06:38

    EEPROM輕量級(jí)的簡易類文件的數(shù)據(jù)讀寫庫:EEPROMFS

    小。 這里就給大家分享一款EEPROM輕量級(jí)的簡易類文件的數(shù)據(jù)讀寫庫:EEPROMFS 1 關(guān)于EEPROMFS EEPROMFS,基于EEPROM的簡易類文件的數(shù)據(jù)讀寫庫,方便做動(dòng)態(tài)
    的頭像 發(fā)表于 11-15 16:31 ?1187次閱讀
    <b class='flag-5'>EEPROM</b>輕量級(jí)的簡易類文件的<b class='flag-5'>數(shù)據(jù)</b>讀寫庫:EEPROMFS

    eeprom芯片型號(hào)怎么確定

    EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦除可編程只讀存儲(chǔ)器)是一種非易失性存儲(chǔ)器,可以不移除芯片的情況下,通過
    的頭像 發(fā)表于 10-17 10:33 ?2005次閱讀

    異常重啟怎么破?多方排查,原因竟然是。。。

    ?又是異常重啟。。。讓人摸不到頭腦。 這幾天,看到客戶上報(bào)了重啟問題,說是查不出原因。 重啟現(xiàn)象是 ——有極個(gè)別設(shè)備在工作中不定時(shí)反復(fù)異常重啟,大部分設(shè)備正常;反復(fù)
    的頭像 發(fā)表于 10-14 07:04 ?901次閱讀
    異常<b class='flag-5'>重啟</b>怎么破?多方排查<b class='flag-5'>后</b>,原因竟然是。。。

    臺(tái)積電嘉義CoWoS封裝工廠獲準(zhǔn)復(fù)工,考古發(fā)掘重啟建設(shè)

     8月16日,據(jù)聯(lián)合新聞網(wǎng)最新消息,臺(tái)積電位于嘉義科學(xué)園區(qū)的兩座CoWoS封裝工廠,經(jīng)歷因考古發(fā)現(xiàn)而暫停施工的波折,現(xiàn)已正式獲得批準(zhǔn)重啟建設(shè)進(jìn)程。這一決定標(biāo)志著臺(tái)積電推動(dòng)其先進(jìn)封
    的頭像 發(fā)表于 08-16 15:56 ?943次閱讀

    PGA309EVM-USB寫入EEPROM再讀取都是0,為什么?

    使用PGA309EVM-USB評(píng)估板及其配套軟件模擬校正測試,按 continue 寫入EEPROM,可以打開cal results 文件,里面的EEPROM都有
    發(fā)表于 08-15 06:42

    EEPROM存儲(chǔ)器如何加密

    EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器)是一種非易失性存儲(chǔ)器,它在斷電仍能保持數(shù)據(jù)。由于其可
    的頭像 發(fā)表于 08-05 18:05 ?2173次閱讀

    eeprom存儲(chǔ)原理、存儲(chǔ)結(jié)構(gòu)及讀寫操作

    操作。EEPROM具有數(shù)據(jù)保存時(shí)間長、可重復(fù)擦寫、讀寫速度快等優(yōu)點(diǎn),廣泛應(yīng)用于各種電子設(shè)備中。本文將詳細(xì)介紹EEPROM的存儲(chǔ)原理、存儲(chǔ)結(jié)構(gòu)、讀寫操作、編程接口以及應(yīng)用場景。 一、
    的頭像 發(fā)表于 08-05 17:03 ?5940次閱讀

    為什么無法nodemcu和arduino mega之間交換數(shù)據(jù)?

    您好,我正在嘗試通過 UART arduino mega 和 nodemcu 之間交換數(shù)據(jù)(使用 arduino IDE 對(duì)兩者進(jìn)行編程)。 我將
    發(fā)表于 07-19 12:15