在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

ESP32學習筆記:EEPROM

CHANBAEK ? 來源:跳動的字節 ? 作者:曉宇 ? 2023-07-14 15:03 ? 次閱讀

今天我們來玩兒EEPROM。

EEPROM概述

ESP32內部沒有專門的EEPROM,但是我們可以通過FLASH模擬EEPROM,FLASH與EEPROM也是非常相似的,都是非易失性存儲器,使用EEPROM,我們就可以在不使用文件系統的情況下,來保存一些數據,可以實現一些更加復雜的功能。

例如,我們可以做到以下功能:

  • 保存變量的最終狀態
  • 保存我們的設置
  • 保存設備被激活的次數
  • 永久保存其它任何類型的數據

ESP32在Arduino是使用FLASH開辟的一塊存儲區域,默認的對象存儲大小為4096個字節。

硬件

本實驗我們直接用核心板就可以,不添加其它外設了。

軟件

EEPROM初始化

代碼調用#include 后,已經默認定義了一個EEPROM對象,我們使用began方法初始化一下,參數為要操作的字節大小,最大為4096字節,所以這里的參數范圍為0-4095。EEPROM的操作以字為單位,size最好設置為4的倍數。

EEPROM.begin(size);

將數據寫入EEPROM,使用EEPROM.write();第一個參數為地址,第二個參數為保存的值。

EEPROM.write(address, value);

從EEPROM上讀取一個字節,使用EEPROM.read();參數為讀取的地址。

EEPROM.read(address);

更新生效

通過EEPROM.write()寫入數據后,之后需要調用EEPROM.commit()使更改生效,寫入完成。

EEPROM.commit();

EEPROM還有其它函數,都在庫文件中,大家可以在下面兩個文件中找到相關源碼。

EEPROM.h
EEPROM.c

完整程序

這里我們用一個例子來演示一下,我們在整片EEPROM上寫入數據,從0-255,反復循環寫入,然后再讀取出來。

寫程序

/*
 *      Created on: 20220128          
 *      Author:     公眾號:跳動的字節
 *      Function    09 EEPROM寫與讀
 *      Version:    V1.0
 *
 *                        ,%%%%%%%%,
 *                      ,%%/%%%%/%%
 *                     ,%%%c''''J/%%%
 *           %.        %%%%/ o  o %%%
 *           `%%.      %%%%       |%%%
 *            `%%      `%%%%(__Y__)%%'
 *            //        ;%%%%`-/%%%'
 *            ((      /   `%%%%%%%'
 *                  .'           |
 *                 /          | |
 *               /          ) | |
 *                          /_ | |__
 *                (____________))))))) 攻城獅
 *
 */

#include < EEPROM.h >

void setup() 
{
  Serial.begin(115200);
  Serial.println("");
   
  EEPROM.begin(4096); //申請4096個字節的EEPROM存儲空間
  //寫數據
  Serial.println("write begin");
  for(int addr = 0; addr< 4096; addr++)
  {
    int data = addr%256; //EEPROM寫入的數據時以字節為單位的
    EEPROM.write(addr, data); //寫入數據
  }
  EEPROM.commit(); //保存更改的數據 
  Serial.println("write done");

  //讀數據
  Serial.println("read begin");
  for(int addr = 0; addr< 4096; addr++)
  {
    int data = EEPROM.read(addr); //讀數據
    Serial.print(data);
    Serial.print(" ");
    delay(2);
    if((addr+1)%256 == 0) //每行顯示256個數據
    {
      Serial.println("");
    }
  }

  Serial.println("read done");
}

void loop() 
{
}

實驗效果:

圖片

EEPROM的使用很簡單,但這里有一點需要注意,在初始化EEPROM.begin(size)的時候,參數size下一次必須大于等于上一次,否則會有用一些出錯,正常情況下,我們就一直用最大值4096即可。

后面,我們會介紹更加高級的方法實現數據的保存,使用Preferences庫來保存鍵值對的方式,還有文件系統的方式,大家到時候再深入了解。

感謝大家,關于ESP32的學習,希望大家Enjoy!

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

    關注

    10

    文章

    1637

    瀏覽量

    148106
  • 存儲器
    +關注

    關注

    38

    文章

    7494

    瀏覽量

    163897
  • EEPROM
    +關注

    關注

    9

    文章

    1021

    瀏覽量

    81649
  • 文件系統
    +關注

    關注

    0

    文章

    285

    瀏覽量

    19913
  • ESP32
    +關注

    關注

    18

    文章

    971

    瀏覽量

    17309
收藏 人收藏

    評論

    相關推薦

    ESP32單片機學習筆記

    ESP32 單片機學習筆記 - 03 - MCPWM脈沖輸出/PCNT脈沖計數前言,繼續上一篇的內容。因為上一篇剛好實驗了iic和spi,形成一對。接下來講pwm另起一篇。一、電機PWM輸出
    發表于 08-23 08:47

    ESP32ESP-IDF學習筆記

    ESP32ESP-IDF 學習筆記(六)【I2C數據總線(I2C)】文章目錄ESP32ESP
    發表于 02-22 07:30

    ESP32 開發筆記(四)LVGL控件學習 Window 窗口控件 X

    ESP32 開發筆記(四)LVGL控件學習 Window 窗口控件 X
    發表于 11-14 09:06 ?6次下載
    <b class='flag-5'>ESP32</b> 開發<b class='flag-5'>筆記</b>(四)LVGL控件<b class='flag-5'>學習</b> Window 窗口控件 X

    [ESP32]學習筆記02

    [ESP32學習筆記02]使用ViusalStudio2017開發ESP32、按鍵輸入檢測前言一、安裝Visual Studio 2017二、配置開發環境1.安裝ViusalGDB2.
    發表于 12-03 17:36 ?23次下載
    [<b class='flag-5'>ESP32</b>]<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>02

    [ESP32]學習筆記04

    Analog-to-Digital Converter(模數轉換器)的使用今天我們學習ESP32提供的ADC外設的使用,ESP32的每個ADC單元都支持兩種模式,單次讀取和連續讀取(DMA),本次
    發表于 12-22 19:02 ?9次下載
    [<b class='flag-5'>ESP32</b>]<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>04

    SPI主線協議——ESP32學習筆記

    目錄SPI主線協議——ESP32學習筆記零、前言一、什么是SPI?二、通信過程?三、極性和相位四、總結SPI主線協議——ESP32學習
    發表于 12-22 19:23 ?18次下載
    SPI主線協議——<b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    ESP32 單片機學習筆記 - 08 - WebSocket客戶端

    前言,終于要到網絡模型的最后一層,第四層,應用層,http、websocket的實踐了。文章目錄ESP32 單片機學習筆記 - 08 - WebSocket客戶端一、應用層協議 科普概念二、編程指南
    發表于 12-29 18:56 ?12次下載
    <b class='flag-5'>ESP32</b> 單片機<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 08 - WebSocket客戶端

    ESP32 單片機學習筆記 - 04 - ADC和定時器

    ESP32 單片機學習筆記 - 04 - ADC和定時器一、模擬數字轉換器 ADC編程指南:Analog to Digital Converter。數據手冊: ESP32 技術參考手冊
    發表于 01-17 13:18 ?11次下載
    <b class='flag-5'>ESP32</b> 單片機<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 04 - ADC和定時器

    ESP32芯片模組機器學習算法運行的應用

    強大的機器學習算法。 ESP32集天線開關、射頻巴倫、功率放大器、低噪聲放大器、濾波器以及電源管理模塊于一體,占用較小的PCB空間,即可最大化滿足實際應用多樣的功能需求。 使用EdgeImpulse在ESP32上運行機器
    發表于 03-15 17:23 ?1261次閱讀

    ESP32上的深度強化學習

    電子發燒友網站提供《ESP32上的深度強化學習.zip》資料免費下載
    發表于 12-27 10:31 ?0次下載
    <b class='flag-5'>ESP32</b>上的深度強化<b class='flag-5'>學習</b>

    ESP32學習筆記:ADC

    ESP32 芯片有2 個 12位的SAR(逐次逼近)ADC,最多可以讀取18個不同的模擬通道輸入,由5個專用轉換控制器管理,2個支持高性能多通道掃描,2個支持Deep-sleep低功耗模式下運行,還有一個專門用于功率檢測和峰值監測。
    的頭像 發表于 07-13 17:11 ?5045次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:ADC

    ESP32學習筆記:存儲分布和啟動過程

    今天我們來說說ESP32 for Arduino存儲分布以及啟動過程。
    的頭像 發表于 07-14 15:10 ?3042次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:存儲分布和啟動過程

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

    今天我們來說說ESP32 for Arduino NVS分區永久保存數據。
    的頭像 發表于 07-15 16:14 ?1.1w次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:NVS分區永久保存數據

    ESP32學習筆記:雙核

    今天我們來說說ESP32 for Arduino 的雙核。
    的頭像 發表于 07-15 16:16 ?5061次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:雙核

    ESP32學習筆記:WiFi

    今天我們來說說ESP32 的WiFi。
    的頭像 發表于 07-15 16:20 ?4026次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:WiFi
    主站蜘蛛池模板: 精品久久天干天天天按摩 | 日本人的色道免费网站| 天堂资源在线www中文| 亚洲成色999久久网站| 五月天精品在线| 色爽爽爽爽爽爽爽爽| 欧美一级片手机在线观看| 久热99| 狂捣猛撞侍卫攻双性王爷受| 中韩日欧美电影免费看| 性欧美日本| 人与禽交免费网站视频| 久久狠色噜噜狠狠狠狠97| 国产精品九九久久一区hh | 亚欧色视频在线观看免费| 四虎在线观看一区二区| 欧美一区二区三区免费高| 黄色免费三级| 夜夜澡人人爽人人喊_欧美| 天堂8资源在线官网资源| 国产福利精品视频| 综合免费一区二区三区| www亚洲成人| 色天网站| 韩国黄色三级视频| 看日本黄色大片| 国产高清色视频免费看的网址| 午夜在线网站| 成人午夜影院在线观看| 黄色特级录像| 啪啪在线视频| 韩国理伦片在线观看2828| 婷婷色香| 黄色网址有那些| 美女视频永久黄网站免费观看国产| 国产一级特黄老妇女大片免费| 夜夜操天天射| 2019天天爱天天做| av福利网址网站| 青草网址| 一级片在线视频|