吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ESP32/Arduino如何使用EEPROM,并且讀取和寫入數據?

jf_Ufm3lVrj ? 來源:凌順實驗室 ? 2024-03-19 11:44 ? 次閱讀

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

EEPROM 是一種非易失性ROM,可以擦除和重新編程單個字節的數據。這就是 EEPROM芯片被稱為字節可擦除芯片的原因。EEPROM 通常用于在計算和其他電子設備中存儲少量數據。

Arduino Uno 的EEEROM大小為1024個字節。

ESP32的EEPROM大小為 512 字節。

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

簡單來說EEPROM里面的數據是可以斷電保存的,重新上電數據并不會丟失。但是,閃存的一個限制是可刷寫數據的次數。你可以根據需要多次從閃存中讀取數據,但大多數設備閃存的寫入次數設計為大約 100,000 到 1,000,000 次寫入操作。

在 ESP32 的閃存讀取和寫入將使用 EEPROM 庫。其實是和 Arduino EEPROM 一樣的,并沒有太大區別。

本示例,主要記錄ESP32/Arduino如何使用EEPROM,并且讀取和寫入數據。

程序提點

首先需要加載EEPROM的庫

// 加載EEPROM的庫
#include 

在setup中初始化EEPROM的大小

// 定義EEPROM的大小
#define EEPROM_SIZE 1  // 這里定義1個字節的大小

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

讀取EEPROM指定位置的數據

例如,讀取第0位的數據:

read_value = EEPROM.read(0); // 讀區 EEPROM 第0位的數據

EEPROM刷寫指定位置的數據

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

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

完整代碼

該程序

實現每一秒都會把變量read_value + 1 ,并寫入EEPROM中。

當中途斷電,重新通電也能繼續斷電前的數據,而不是從0開始。

// welcome to lingshunlab.com
// 加載EEPROM的庫
#include 

// 定義EEPROM的大小
#define EEPROM_SIZE 1  // 這里定義1個字節的大小

int read_value = 0;

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

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

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

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

  delay(1000);
}



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • EEPROM
    +關注

    關注

    9

    文章

    1033

    瀏覽量

    81955
  • Arduino
    +關注

    關注

    188

    文章

    6477

    瀏覽量

    187821
  • ESP32
    +關注

    關注

    18

    文章

    978

    瀏覽量

    17529

原文標題:ESP32 斷電數據保存 EEPROM數據讀取和寫入

文章出處:【微信號:凌順實驗室,微信公眾號:凌順實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    NodeMCU V1.0無法讀取/寫入EEPROM數據

    。但是,對于 Arduino V1.8.8,我選擇了菜單 Tools - Erase Flash - All Flash Contents之后,模塊似乎運行良好,但現在無法讀取/寫入 EEPR
    發表于 02-24 07:39

    arduino-esp32-master環境設置用的庫

    arduino-esp32-master開發環境設置用的庫
    發表于 08-07 08:53 ?25次下載

    ESP32ESP8266基于Arduino的MQTT收發資料說明

    本文檔的主要內容詳細介紹的是ESP32ESP8266基于Arduino的MQTT收發資料說明。
    發表于 01-24 08:00 ?109次下載
    <b class='flag-5'>ESP32</b>和<b class='flag-5'>ESP</b>8266基于<b class='flag-5'>Arduino</b>的MQTT收發資料說明

    esp32arduino的區別,esp32能否替代arduino

    很多創客愛好者甚至有些技術工程師在理解esp32arduino的時候總是問一句這兩塊板子哪個更好用?他們可能潛意識中就覺得arduinoesp32是競品的關系,但實際是這樣嗎?今天
    發表于 06-24 17:11 ?2.7w次閱讀

    ESP32 開發之旅② Arduino For ESP32說明

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

    使用Arduino開發ESP32-01S

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

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

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

    mpu6050使用 基于esp32

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

    Arduino Nano和ESP32 DEV顯示板

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

    Arduino封裝上的ESP32

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

    如何使用Arduino IDE對ESP32進行無線編程

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

    基于ESP32Arduino兼容系統

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

    帶有ESP32Arduino物聯網云

    電子發燒友網站提供《帶有ESP32Arduino物聯網云.zip》資料免費下載
    發表于 06-15 09:16 ?3次下載
    帶有<b class='flag-5'>ESP32</b>的<b class='flag-5'>Arduino</b>物聯網云

    如何在Arduino IDE中安裝ESP32開發環境

    要在Arduino IDE中使用ESP32開發板,您需要先安裝相應的開發環境。以下是在Arduino IDE中安裝ESP32開發環境的步驟。
    的頭像 發表于 07-13 16:48 ?1.9w次閱讀
    如何在<b class='flag-5'>Arduino</b> IDE中安裝<b class='flag-5'>ESP32</b>開發環境

    ESP32學習筆記:NVS分區永久保存數據

    今天我們來說說ESP32 for Arduino NVS分區永久保存數據
    的頭像 發表于 07-15 16:14 ?1.1w次閱讀
    <b class='flag-5'>ESP32</b>學習筆記:NVS分區永久保存<b class='flag-5'>數據</b>
    百家乐官网娱乐城主页| 百家乐官网五湖四海娱乐平台| 综艺| 金尊国际娱乐| 尚品棋牌注册| 大发888在线赌场网站| 阿玛尼百家乐的玩法技巧和规则| BB百家乐大转轮| 网上百家乐作弊下载| 立博百家乐游戏| 好运来百家乐官网的玩法技巧和规则| 百家乐官网庄闲预测| 鲨鱼百家乐官网游戏平台| 皇室百家乐官网娱乐城| 肇庆市| 昌乐县| 丹巴县| 太阳城亚洲开户| 新濠娱乐城| 皇冠网站| 韦德国际| 百家乐代理| 威宁| 前郭尔| 礼泉县| 常山县| 百家乐官网的必赢方法| 百家乐官网街机游戏下载| 百家乐官网金海岸娱乐| 百家乐官网稳赢投注方法| 百家乐官网软件编辑原理| 百家乐官网平台要多少钱| 百家乐官网平注常赢打法| 百家乐官网走势图备用网站| 百家乐官网返水1.2不限| 瑞丰国际开户| bet365官方网站| 十六浦娱乐城| 灵璧县| 百家乐官网庄河闲的赌法| 赌博百家乐官网有技巧吗|