chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

ESP32/Arduino如何使用EEPROM,并且讀取和寫(xiě)入數(shù)據(jù)?

jf_Ufm3lVrj ? 來(lái)源:凌順實(shí)驗(yàn)室 ? 2024-03-19 11:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

EEPROM (electrically erasable programmable read-only memory)是一種用戶(hù)可修改的ROM,又或者稱(chēng)為閃存(Flash Memory)。它可以通過(guò)施加高于正常電壓的電壓,就可以反復(fù)擦除和重新編程(寫(xiě)入)的閃存 。

EEPROM 是一種非易失性ROM,可以擦除和重新編程單個(gè)字節(jié)的數(shù)據(jù)。這就是 EEPROM芯片被稱(chēng)為字節(jié)可擦除芯片的原因。EEPROM 通常用于在計(jì)算和其他電子設(shè)備中存儲(chǔ)少量數(shù)據(jù)。

Arduino Uno 的EEEROM大小為1024個(gè)字節(jié)。

ESP32的EEPROM大小為 512 字節(jié)。

這意味著使用 ESP32 和 EEPROM 庫(kù)可以有 512 個(gè)不同的地址,可以在每個(gè)地址位置保存一個(gè) 0 到 255 之間的值。

簡(jiǎn)單來(lái)說(shuō)EEPROM里面的數(shù)據(jù)是可以斷電保存的,重新上電數(shù)據(jù)并不會(huì)丟失。但是,閃存的一個(gè)限制是可刷寫(xiě)數(shù)據(jù)的次數(shù)。你可以根據(jù)需要多次從閃存中讀取數(shù)據(jù),但大多數(shù)設(shè)備閃存的寫(xiě)入次數(shù)設(shè)計(jì)為大約 100,000 到 1,000,000 次寫(xiě)入操作。

在 ESP32 的閃存讀取和寫(xiě)入將使用 EEPROM 庫(kù)。其實(shí)是和 Arduino EEPROM 一樣的,并沒(méi)有太大區(qū)別。

本示例,主要記錄ESP32/Arduino如何使用EEPROM,并且讀取和寫(xiě)入數(shù)據(jù)。

程序提點(diǎn)

首先需要加載EEPROM的庫(kù)

// 加載EEPROM的庫(kù)
#include 

在setup中初始化EEPROM的大小

// 定義EEPROM的大小
#define EEPROM_SIZE 1  // 這里定義1個(gè)字節(jié)的大小

void setup() { 
  ...
  // 初始化EEPROM為預(yù)習(xí)定義的大小
  EEPROM.begin(EEPROM_SIZE);
  ...
}

讀取EEPROM指定位置的數(shù)據(jù)

例如,讀取第0位的數(shù)據(jù):

read_value = EEPROM.read(0); // 讀區(qū) EEPROM 第0位的數(shù)據(jù)

EEPROM刷寫(xiě)指定位置的數(shù)據(jù)

例如,第0位的數(shù)據(jù)刷寫(xiě)為read_value的值,最后,不要忘記EEPROM.commit();提交,運(yùn)行這句代碼才能正真刷寫(xiě)數(shù)據(jù)。

EEPROM.write(0, read_value); // 把 變量read_value的數(shù)值寫(xiě)入第0位
EEPROM.commit(); // 需要提交才能正真地把數(shù)據(jù)寫(xiě)入EEPROM

完整代碼

該程序

實(shí)現(xiàn)每一秒都會(huì)把變量read_value + 1 ,并寫(xiě)入EEPROM中。

當(dāng)中途斷電,重新通電也能繼續(xù)斷電前的數(shù)據(jù),而不是從0開(kāi)始。

// welcome to lingshunlab.com
// 加載EEPROM的庫(kù)
#include 

// 定義EEPROM的大小
#define EEPROM_SIZE 1  // 這里定義1個(gè)字節(jié)的大小

int read_value = 0;

void setup() { 
  Serial.begin(115200);

  // 初始化EEPROM為預(yù)習(xí)定義的大小
  EEPROM.begin(EEPROM_SIZE);
}

void loop() {
  read_value = EEPROM.read(0); // 讀區(qū) EEPROM 第0位的數(shù)據(jù)
  Serial.println(read_value);  

  read_value++;   // read_value+1 ,但EEPROM只接受0~255的數(shù)值,超出的將會(huì)是255的取余值
  EEPROM.write(0, read_value); // 把 變量read_value的數(shù)值寫(xiě)入第0位
  EEPROM.commit(); // 需要提交才能正真地把數(shù)據(jù)寫(xiě)入EEPROM

  delay(1000);
}



審核編輯:劉清

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

    關(guān)注

    9

    文章

    1103

    瀏覽量

    85031
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6509

    瀏覽量

    194774
  • ESP32
    +關(guān)注

    關(guān)注

    21

    文章

    1044

    瀏覽量

    20316

原文標(biāo)題:ESP32 斷電數(shù)據(jù)保存 EEPROM數(shù)據(jù)讀取和寫(xiě)入

文章出處:【微信號(hào):凌順實(shí)驗(yàn)室,微信公眾號(hào):凌順實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    NodeMCU V1.0無(wú)法讀取/寫(xiě)入EEPROM數(shù)據(jù)?

    。但是,對(duì)于 Arduino V1.8.8,我選擇了菜單 Tools - Erase Flash - All Flash Contents之后,模塊似乎運(yùn)行良好,但現(xiàn)在無(wú)法讀取/寫(xiě)入 EEPR
    發(fā)表于 02-24 07:39

    arduino-esp32-master環(huán)境設(shè)置用的庫(kù)

    arduino-esp32-master開(kāi)發(fā)環(huán)境設(shè)置用的庫(kù)
    發(fā)表于 08-07 08:53 ?25次下載

    ESP32ESP8266基于Arduino的MQTT收發(fā)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是ESP32ESP8266基于Arduino的MQTT收發(fā)資料說(shuō)明。
    發(fā)表于 01-24 08:00 ?112次下載
    <b class='flag-5'>ESP32</b>和<b class='flag-5'>ESP</b>8266基于<b class='flag-5'>Arduino</b>的MQTT收發(fā)資料說(shuō)明

    esp32arduino的區(qū)別,esp32能否替代arduino

    很多創(chuàng)客愛(ài)好者甚至有些技術(shù)工程師在理解esp32arduino的時(shí)候總是問(wèn)一句這兩塊板子哪個(gè)更好用?他們可能潛意識(shí)中就覺(jué)得arduinoesp32是競(jìng)品的關(guān)系,但實(shí)際是這樣嗎?今天
    發(fā)表于 06-24 17:11 ?2.9w次閱讀

    ESP32 開(kāi)發(fā)之旅② Arduino For ESP32說(shuō)明

    文章目錄1. Arduino Core For ESP32是什么?2.Arduino core for ESP32庫(kù)3.與ESP8266庫(kù)類(lèi)
    發(fā)表于 11-13 19:51 ?33次下載
    <b class='flag-5'>ESP32</b> 開(kāi)發(fā)之旅② <b class='flag-5'>Arduino</b> For <b class='flag-5'>ESP32</b>說(shuō)明

    使用Arduino開(kāi)發(fā)ESP32-01S

    使用Arduino開(kāi)發(fā)ESP32-01S
    發(fā)表于 12-03 18:06 ?16次下載
    使用<b class='flag-5'>Arduino</b>開(kāi)發(fā)<b class='flag-5'>ESP32</b>-01S

    arduino / VScode+platformIO搭建esp32/esp8266編譯環(huán)境(一篇足矣)

    arduino/VScode+platformIO 搭建esp32/esp8266開(kāi)發(fā)環(huán)境(一篇足矣)前言:入門(mén)開(kāi)源硬件開(kāi)發(fā),在搭建編譯環(huán)境的時(shí)候碰了一臉灰,特意寫(xiě)下此博客,以供參考!制作不易,來(lái)個(gè)
    發(fā)表于 12-05 14:06 ?35次下載
    <b class='flag-5'>arduino</b> / VScode+platformIO搭建<b class='flag-5'>esp32</b>/<b class='flag-5'>esp</b>8266編譯環(huán)境(一篇足矣)

    mpu6050使用 基于esp32

    arduino例程只寫(xiě)了讀取各角度。沒(méi)有寫(xiě)明我們應(yīng)該怎么去操作這些數(shù)據(jù)arduino果然入門(mén)簡(jiǎn)單),去查看了他們stm32的例程后看到了操作函數(shù),現(xiàn)在開(kāi)始開(kāi)搞。1.模塊2.
    發(fā)表于 12-06 12:36 ?10次下載
    mpu6050使用 基于<b class='flag-5'>esp32</b>

    Arduino Nano和ESP32 DEV顯示板

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano和ESP32 DEV顯示板.zip》資料免費(fèi)下載
    發(fā)表于 07-06 14:39 ?0次下載
    <b class='flag-5'>Arduino</b> Nano和<b class='flag-5'>ESP32</b> DEV顯示板

    Arduino封裝上的ESP32

    電子發(fā)燒友網(wǎng)站提供《Arduino封裝上的ESP32板.zip》資料免費(fèi)下載
    發(fā)表于 07-25 14:36 ?6次下載
    <b class='flag-5'>Arduino</b>封裝上的<b class='flag-5'>ESP32</b>板

    如何使用Arduino IDE對(duì)ESP32進(jìn)行無(wú)線編程

    在本教程中,我們將使用Arduino IDE 中的 OTA Web Updater對(duì) ESP32 進(jìn)行無(wú)線 (OTA) 編程。
    發(fā)表于 08-11 15:42 ?7054次閱讀
    如何使用<b class='flag-5'>Arduino</b> IDE對(duì)<b class='flag-5'>ESP32</b>進(jìn)行無(wú)線編程

    基于ESP32Arduino兼容系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《基于ESP32Arduino兼容系統(tǒng).zip》資料免費(fèi)下載
    發(fā)表于 12-20 17:53 ?0次下載
    基于<b class='flag-5'>ESP32</b>的<b class='flag-5'>Arduino</b>兼容系統(tǒng)

    帶有ESP32Arduino物聯(lián)網(wǎng)云

    電子發(fā)燒友網(wǎng)站提供《帶有ESP32Arduino物聯(lián)網(wǎng)云.zip》資料免費(fèi)下載
    發(fā)表于 06-15 09:16 ?4次下載
    帶有<b class='flag-5'>ESP32</b>的<b class='flag-5'>Arduino</b>物聯(lián)網(wǎng)云

    如何在Arduino IDE中安裝ESP32開(kāi)發(fā)環(huán)境

    要在Arduino IDE中使用ESP32開(kāi)發(fā)板,您需要先安裝相應(yīng)的開(kāi)發(fā)環(huán)境。以下是在Arduino IDE中安裝ESP32開(kāi)發(fā)環(huán)境的步驟。
    的頭像 發(fā)表于 07-13 16:48 ?2.3w次閱讀
    如何在<b class='flag-5'>Arduino</b> IDE中安裝<b class='flag-5'>ESP32</b>開(kāi)發(fā)環(huán)境

    ESP32學(xué)習(xí)筆記:NVS分區(qū)永久保存數(shù)據(jù)

    今天我們來(lái)說(shuō)說(shuō)ESP32 for Arduino NVS分區(qū)永久保存數(shù)據(jù)。
    的頭像 發(fā)表于 07-15 16:14 ?1.4w次閱讀
    <b class='flag-5'>ESP32</b>學(xué)習(xí)筆記:NVS分區(qū)永久保存<b class='flag-5'>數(shù)據(jù)</b>