玩轉(zhuǎn) ESP32 + Arduino(二十七) ESP對(duì)象

在 ESP32 for Arduino固件中, 有一個(gè)對(duì)象叫ESP,今天我們花點(diǎn)時(shí)間看一下這個(gè)對(duì)象

一. 獲取信息類方法:

1. ESP.getChipRevision() //獲取芯片版本

返回: uint8_t
ESP.getChipRevision: 1

2. ESP.getCpuFreqMHz() //獲取CPU頻率

返回: uint32_t
ESP.getCpuFreqMHz: 240

3. ESP.getCycleCount //循環(huán)計(jì)數(shù)??

返回: uint32_t
ESP.getCycleCount: 1210809053

4. ESP.getEfuseMac //獲取Efuse的地址

ESP.getEfuseMac: 277342979060028

Efuse類似于EEPROM,是一次性可編程存儲(chǔ)器,在芯片出場(chǎng)之前會(huì)被寫入信息,在一個(gè)芯片中,efuse的容量通常很小,一些芯片efuse只有128bit
Efuse可用于存儲(chǔ)MEM repair的存儲(chǔ)修復(fù)數(shù)據(jù),也可用于存儲(chǔ)芯片的信息:如芯片可使用電源電壓,芯片的版本號(hào),生產(chǎn)日期。在廠家生產(chǎn)好die后,會(huì)進(jìn)行測(cè)試,將芯片的信息寫到efuse中去。

5. ESP.getFlashChipMode //獲取FLASH芯片類型

返回 FlashMode_t 類型


ESP.getFlashChipMode: 2

證明我們的flash 是工作在 FM_DIO模式下的

關(guān)于flash的工作模式:
Flash 常用的工作模式有 4 種:DOUT/DIO/QOUT/QIO

  • DOUT:地址為 1 線模式輸入,數(shù)據(jù)為 2 線模式輸出
  • DIO:地址為 2 線模式輸入,數(shù)據(jù)為 2 線模式輸出
  • QOUT:地址為 1 線模式輸入,數(shù)據(jù)為 4 線模式輸出
  • QIO:地址為 4 線模式輸入,數(shù)據(jù)為 4 線模式輸出
    用戶如果需要使用 QIO 模式,則需要在選擇 Flash 時(shí)確認(rèn)該 Flash 是否支持 QIO 模式。

關(guān)于四種模式的詳細(xì)介紹請(qǐng)參考: https://github.com/espressif/esptool/wiki/SPI-Flash-Modes

6. ESP.getFlashChipSize //獲取FLASH芯片的容量

ESP.getFlashChipSize: 4194304

7. ESP.getFlashChipSpeed //獲取FLASH芯片的速度

ESP.getFlashChipSpeed: 40000000

8. ESP.getFreeHeap //獲取空閑堆

ESP.getFreeHeap: 358524

9. ESP.getFreePsram //獲取空閑的Psram

ESP.getFreePsram: 0

我用的ESP32-WROOM是沒用psram的, ESP32-WROVER系列有
詳細(xì)信息請(qǐng)查閱: https://www.espressif.com/zh-hans/products/modules/esp32

10. ESP.getFreeSketchSpace //獲取空閑的程序空間

ESP.getFreeSketchSpace: 1310720

11. ESP.getHeapSize //獲取堆的容量

ESP.getHeapSize: 384584

12. ESP.getMaxAllocHeap //獲取最大堆分配

ESP.getMaxAllocHeap: 124832

關(guān)于最大堆/最小堆 請(qǐng)參考:https://blog.csdn.net/varyall/article/details/81099681

13. ESP.getMaxAllocPsram //獲取最大PSram分配

ESP.getMaxAllocPsram: 0

14. ESP.getMinFreeHeap //獲取最小空閑堆

ESP.getMinFreeHeap: 352340

15. ESP.getMinFreePsram //獲取最小空閑Psram

ESP.getMinFreePsram: 0

16. ESP.getPsramSize //獲取PSram空間

ESP.getPsramSize: 0

17. ESP.getSdkVersion //獲取SDK版本

ESP.getSdkVersion: v3.2.3-14-gd3e562907

18. ESP.getSketchMD5 //獲取程序的MD5值

ESP.getSketchMD5: 1bb944b47607468c0f7a7e3ccdf2a579

19. ESP.getSketchSize //獲取程序的容量

ESP.getSketchSize: 243024

二. 設(shè)置類函數(shù)

1. ESP.deepSleep(10000000); //ESP32深睡眠一段時(shí)間

這個(gè)函數(shù)可以讓ESP32深睡眠若干長度的時(shí)間, 經(jīng)測(cè)試和開啟定時(shí)器喚醒的深睡眠效果一樣, 不知道具體有什么不同

2. ESP.restart(); //重啟ESP32

直接讓ESP32重啟


接下來的這些函數(shù)我沒用測(cè)試, 只是采測(cè)他們的功能

3. ESP.flashEraseSector() //刪除flash的一個(gè)扇區(qū)

bool flashEraseSector(uint32_t sector)

4. ESP.flashRead //讀flash

bool flashRead(uint32_t offset, uint32_t *data, size_t size)

5. ESP.flashWrite //寫flash

bool flashWrite(uint32_t offset, uint32_t *data, size_t size)

6. ESP.magicFlashChipMode //更改Flash工作模式

FlashMode_t magicFlashChipMode(uint8_t byte)

7. ESP.magicFlashChipSize //更改flash大小

uint32_t magicFlashChipSize(uint8_t byte)

8. ESP.magicFlashChipSpeed //更改flash速度

uint32_t magicFlashChipSpeed(uint8_t byte)

一般用默認(rèn)的40M就可以, 如果想改參考函數(shù)源碼

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容