ESP32的NVS使用指南


  NVS總的來說,就是非易失性存儲,類似MCU EEPROM,但實際上調用ESP32這些函數,數據是存儲在FLASH中的。

它的管理方式類似數據庫的表,在NVS里面可以存儲很多個不同的表,每個表下面有不同的鍵值,每個鍵值可以存儲8位,

16位,32位等等不同的數據類型,但不能是浮點數。

NVS相關API使用方法如下:

(1)初始化

         調用“nvs_flash_init();”,如果失敗可調用“nvs_flash_erase()”擦除NVS,然后再次初始化。

 

(2)打開一個表

       

    nvs_open("List", NVS_READWRITE, &my_handle);
        這個API第一個形參為一個字符串,可稱為表名。第二個是讀寫模式,可選讀寫或者只讀,第三個是當前打開的表的句柄。

        如此聲明:“nvs_handle my_handle;   ”。后面對表里面的鍵值進行讀寫,都需要輸入鍵值所在表的句柄。

 

(3)讀寫

         讀:

    vs_get_i8(my_handle, "nvs_i8", &nvs_i8);
         讀寫不同的數據類型需要調用不同的API,類似的API有:“nvs_get_i16”,“nvs_get_u32”等等

         形參方面,第一個是表的句柄,第二個是鍵值,第三個則是對應的變量的指針,如“nvs_i8”是個“int8_t”類型的變量。

 

         寫:

   nvs_set_i8(my_handle, "nvs_i8", nvs_i8);
         基本跟讀差不多,注意的是第三個形參變成了對應的變量,而不是變量的指針。

 

 (4)提交與關閉

          提交:

    nvs_commit(my_handle);
          關閉:

    nvs_close(my_handle);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM