色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

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

今天我們來說說ESP32 for Arduino NVS分區永久保存數據。

ESP32 for Arduino NVS分區

上一節我們講了整個ESP32的存儲分布,其中有一個NVS分區,這個分區專門用來存儲數據的,系統在復位或斷電后數據仍然存在,我們可以使用Preferences庫保存網絡SSID,密碼,一些閾值或者IO的最后狀態等。

在保存數據的時候,我們推薦使用Preferences庫,不推薦使用EEPROM庫。

使用Preferences庫保存的數據結構如下,也叫鍵值對:

namespace {
  key:value
}

一個命名空間中也可以有不同的鍵:

namespace {
  key1: value1
  key2: value2
}

實際使用中,我們可以用來保存網絡憑證:

credentials {
  ssid: "your_ssid"
  pass: "your_pass"
}

也可以有多個具有相同鍵的命名空間(但每個鍵都有其值):

namespace1{
  key:value1
}
namespace2{
  key:value2
}

使用Preferences庫時,應該定義要保存的數據類型。如果想讀取該數據,則必須知道保存的數據類型,也就是說,寫入和讀取的數據類型應該相同。

支持以下數據類型的保存:char、char、short、Ushort、int、Uint、long、Ulong、long64、Ulong64、float、double、bool、字符串和字節。

Preferences庫函數說明

首先包含頭文件

Preferences 庫

然后定義一個實例

Preferences preferences;

打開一個命名空間

begin方法打開一個帶有定義命名空間的“儲存空間”,參數為false代表我們在讀/寫模式下使用,為true代表以只讀的方式打開或創建命令空間,命名空間名稱最多為15個字符。

preferences.begin("my-app", false);

清除preferences

從打開的命名空間中刪除一個鍵。

preferences.remove(key);

關閉preferences

使用end方法在打開的命名空間下關閉preferences

preferences.end();

放置一個k-v

圖片

獲取一個k-v

圖片

刪除命名空間

在Preferences 庫中,并沒有完全刪除命令空間的方法,我們存儲很多數據之后,nvs分區可能就滿了,所以我們想要完全擦除nvs分區,可以使用以下程序運行一次:

#include < nvs_flash.h >

void setup() {
  nvs_flash_erase(); // 擦除NVS分區
  nvs_flash_init();  // 初始化NVS分區
  while(true);
}

void loop() {

}

程序示例

我們直接打開Example中的例子,StartCounter

/*
 ESP32 startup counter example with Preferences library.

 This simple example demonstrates using the Preferences library to store how many times the ESP32 module has booted. 
 The Preferences library is a wrapper around the Non-volatile storage on ESP32 processor.

 created for arduino-esp32 09 Feb 2017 by Martin Sloup (Arcao)
 
 Complete project details at https://RandomNerdTutorials.com/esp32-save-data-permanently-preferences/
*/

#include < Preferences.h >

Preferences preferences;

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

  // Open Preferences with my-app namespace. Each application module, library, etc
  // has to use a namespace name to prevent key name collisions. We will open storage in
  // RW-mode (second parameter has to be false).
  // Note: Namespace name is limited to 15 chars.
  preferences.begin("my-app", false);

  // Remove all preferences under the opened namespace
  //preferences.clear();

  // Or remove the counter key only
  //preferences.remove("counter");

  // Get the counter value, if the key does not exist, return a default value of 0
  // Note: Key name is limited to 15 chars.
  unsigned int counter = preferences.getUInt("counter", 0);

  // Increase counter by 1
  counter++;

  // Print the counter to Serial Monitor
  Serial.printf("Current counter value: %un", counter);

  // Store the counter to the Preferences
  preferences.putUInt("counter", counter);

  // Close the Preferences
  preferences.end();

  // Wait 10 seconds
  Serial.println("Restarting in 10 seconds...");
  delay(10000);

  // Restart ESP
  ESP.restart();
}

void loop() {

}

這個例子增加了一個counter鍵,每次運行都加一,我們在按下復位鍵之后,可以看到下面你的現象,數據保存起來了。

圖片

Preferences庫很方便保存鍵:值對。即使在重置 ESP32 或斷電后,閃存中保存的數據仍然存在。

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

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

    關注

    13

    文章

    4296

    瀏覽量

    85801
  • 網絡
    +關注

    關注

    14

    文章

    7553

    瀏覽量

    88732
  • EEPROM
    +關注

    關注

    9

    文章

    1019

    瀏覽量

    81561
  • 數據結構
    +關注

    關注

    3

    文章

    573

    瀏覽量

    40123
  • ESP32
    +關注

    關注

    18

    文章

    971

    瀏覽量

    17203
收藏 人收藏

    評論

    相關推薦

    請問esp32s3如何保存突然停電時的數據?

    描述:我們設計的一塊板子,電源處有一塊小電容,在斷電前,還能運行1段時間(時間很短,比如2s) 需求:我們想在這2s時間內,保存一些緊急數據nvs中(數據不會很多),請問是否可以實現
    發表于 06-06 07:38

    ESP32-S3-WROMM-1U同時讀取nvs和寫ota分區會造成系統異常嗎?

    ESP32-S3-WROMM-1U 同時讀取nvs和寫ota分區,造成系統異常?
    發表于 06-07 07:48

    ESP32-S3無法使用NVS分區是怎么回事?

    用的ESP32-S3-DevKitC-1 N16R8開發板,使用官方示例程測試也無法寫入NVS,使用的版本是IDF4.4,
    發表于 06-18 08:13

    基于PlatfromIO-Arduino的ESP32-Flash分區

    ESP32-Flash分區,基于PlatfromIO-Arduino在PlatformIO中添加分區表在工程根目錄下新建partition.csv文件在工程下的platformio.ini文件中添加
    發表于 01-26 08:00

    ESP32ESP-IDF學習筆記

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

    使用ESP32-S3無法使用NVS分區是為什么?

    用的ESP32-S3-DevKitC-1 N16R8開發板,使用官方示例程測試也無法寫入NVS,使用的版本是IDF4.4,
    發表于 02-15 06:21

    如何將ESP-IDF引導加載程序與用于NVSESP32-Arduino代碼一起使用?

    的 Arduino 代碼并將其閃存Stage 2 - ESP32-Arduino 代碼我當前的問題是無論 NVS 是否已加密,我都無法從 NVS 分區寫入/讀取,我什至嘗試禁用閃存加密
    發表于 04-13 08:11

    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驅動AD7705

    wifi配置信息保存nvs_flash,實現掉電重新啟動直接連入wifi(已完成)3、idf v4.0 調試esp-aliyun-master 生成對應的 NVS
    發表于 11-23 17:51 ?15次下載
    <b class='flag-5'>ESP32</b>驅動AD7705

    ESP32-Flash分區,基于PlatfromIO-Arduino

    ESP32-Flash分區,基于PlatfromIO-Arduino在PlatformIO中添加分區表在工程根目錄下新建partition.csv文件在工程下的platformio.ini文件中添加
    發表于 12-02 12:21 ?13次下載
    <b class='flag-5'>ESP32</b>-Flash<b class='flag-5'>分區</b>,基于PlatfromIO-Arduino

    [ESP8266學習筆記]components_nvs 非易失性存儲 Non-Volatile Storage(NVS),保存數據到flash

    [ESP8266學習筆記]components_nvs 非易失性存儲 Non-Volatile Storage(NVS),
    發表于 12-02 12:51 ?11次下載
    [<b class='flag-5'>ESP</b>8266<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>]components_<b class='flag-5'>nvs</b> 非易失性存儲 Non-Volatile Storage(<b class='flag-5'>NVS</b>),<b class='flag-5'>保存</b><b class='flag-5'>數據</b>到flash

    [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學習筆記:WiFi

    今天我們來說說ESP32 的WiFi。
    的頭像 發表于 07-15 16:20 ?3932次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:WiFi
    主站蜘蛛池模板: 青娱乐国产精品视频| 亚洲精品国产精品精| 菠萝菠萝蜜在线观看视频| 秘密影院久久综合亚洲综合 | 久久九九有精品国产23百花影院| 思思re热免费精品视频66| 丰满的女朋友 在线播放| 色综合久久久久久| 国产成人小视频在线观看| 色综合久久五月| 国产精品免费一区二区区| 亚欧乱亚欧乱色视频| 激情丛林电影完整在线| 在线播放av欧美无码碰| 老头扒开粉缝亲我下面| CHINSEFUCKGAY无套| 牲高潮99爽久久久久777| 黑人干亚洲人| 999久久久国产精品蜜臀AV| 日日摸夜夜添夜夜爽出水| 国产色婷婷精品人妻蜜桃成熟时| 夜月视频直播免费观看| 女人会操出水图| 国产欧美精品一区二区三区-老狼| 亚洲中文 字幕 国产 综合| 免费观看a视频| 国产成人高清亚洲一区app| 亚洲香蕉网久久综合影院| 欧美激情视频二区| 国产午夜永久福利视频在线观看| 亚洲呦女专区| 日韩娇小性hd| 九九热综合| 广播电台在线收听| 中国人泡妞www免费| 手机在线观看mv网址| 老太婆风流特黄一级| 国产欧美国日产在线播放| 99热久久视频只有精品6| 亚洲精品久久久一区| 欧美性xxxx18|