在 ESP32 for Arduino固件中, 有一個對象叫ESP炉旷,今天我們花點時間看一下這個對象
一. 獲取信息類方法:
1. ESP.getChipRevision() //獲取芯片版本
返回: uint8_t
ESP.getChipRevision: 1
2. ESP.getCpuFreqMHz() //獲取CPU頻率
返回: uint32_t
ESP.getCpuFreqMHz: 240
3. ESP.getCycleCount //循環(huán)計數(shù)??
返回: uint32_t
ESP.getCycleCount: 1210809053
4. ESP.getEfuseMac //獲取Efuse的地址
ESP.getEfuseMac: 277342979060028
Efuse類似于EEPROM蒋失,是一次性可編程存儲器,在芯片出場之前會被寫入信息乖坠,在一個芯片中染突,efuse的容量通常很小兼雄,一些芯片efuse只有128bit
Efuse可用于存儲MEM repair的存儲修復(fù)數(shù)據(jù)梧税,也可用于存儲芯片的信息:如芯片可使用電源電壓,芯片的版本號侵蒙,生產(chǎn)日期造虎。在廠家生產(chǎn)好die后,會進行測試纷闺,將芯片的信息寫到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 時確認該 Flash 是否支持 QIO 模式署鸡。
關(guān)于四種模式的詳細介紹請參考: 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系列有
詳細信息請查閱: 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)于最大堆/最小堆 請參考: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ù)可以讓ESP32深睡眠若干長度的時間, 經(jīng)測試和開啟定時器喚醒的深睡眠效果一樣, 不知道具體有什么不同
2. ESP.restart(); //重啟ESP32
直接讓ESP32重啟
接下來的這些函數(shù)我沒用測試, 只是采測他們的功能
3. ESP.flashEraseSector() //刪除flash的一個扇區(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)
一般用默認的40M就可以, 如果想改參考函數(shù)源碼