美文网首页
玩转 ESP32 + Arduino(二十七) ESP对象

玩转 ESP32 + Arduino(二十七) ESP对象

作者: 熊爸天下_56c7 | 来源:发表于2020-09-26 02:10 被阅读0次

在 ESP32 for Arduino固件中, 有一个对象叫ESP,今天我们花点时间看一下这个对象

一. 获取信息类方法:

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

返回: uint8_t
ESP.getChipRevision: 1

2. ESP.getCpuFreqMHz() //获取CPU频率

返回: uint32_t
ESP.getCpuFreqMHz: 240

3. ESP.getCycleCount //循环计数??

返回: uint32_t
ESP.getCycleCount: 1210809053

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

ESP.getEfuseMac: 277342979060028

Efuse类似于EEPROM,是一次性可编程存储器,在芯片出场之前会被写入信息,在一个芯片中,efuse的容量通常很小,一些芯片efuse只有128bit
Efuse可用于存储MEM repair的存储修复数据,也可用于存储芯片的信息:如芯片可使用电源电压,芯片的版本号,生产日期。在厂家生产好die后,会进行测试,将芯片的信息写到efuse中去。

5. ESP.getFlashChipMode //获取FLASH芯片类型

返回 FlashMode_t 类型


ESP.getFlashChipMode: 2

证明我们的flash 是工作在 FM_DIO模式下的

关于flash的工作模式:
Flash 常用的工作模式有 4 种:DOUT/DIO/QOUT/QIO

  • DOUT:地址为 1 线模式输入,数据为 2 线模式输出
  • DIO:地址为 2 线模式输入,数据为 2 线模式输出
  • QOUT:地址为 1 线模式输入,数据为 4 线模式输出
  • QIO:地址为 4 线模式输入,数据为 4 线模式输出
    用户如果需要使用 QIO 模式,则需要在选择 Flash 时确认该 Flash 是否支持 QIO 模式。

关于四种模式的详细介绍请参考: 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

关于最大堆/最小堆 请参考: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

二. 设置类函数

1. ESP.deepSleep(10000000); //ESP32深睡眠一段时间

这个函数可以让ESP32深睡眠若干长度的时间, 经测试和开启定时器唤醒的深睡眠效果一样, 不知道具体有什么不同

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

直接让ESP32重启


接下来的这些函数我没用测试, 只是采测他们的功能

3. ESP.flashEraseSector() //删除flash的一个扇区

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就可以, 如果想改参考函数源码

相关文章

网友评论

      本文标题:玩转 ESP32 + Arduino(二十七) ESP对象

      本文链接:https://www.haomeiwen.com/subject/dnvquktx.html