版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
目的
本文介绍了Arduino core for the ESP32中获取模块基本信息与复位原因的一些方法。
基本信息获取
常用方法说明
这里列出的方法主要都在EspClass
类中,可以用默认名为ESP
的对象来调用。
uint32_t getHeapSize()
返回总堆大小;uint32_t getFreeHeap()
返回可用堆大小;uint32_t getMinFreeHeap()
返回系统启动以来最低可用堆大小;uint32_t getMaxAllocHeap()
返回可以可以一次分配的最大堆块;
uint32_t getPsramSize()
返回外部SPI RAM总堆大小;uint32_t getFreePsram()
返回外部SPI RAM可用堆大小;uint32_t getMinFreePsram()
返回外部SPI RAM系统启动以来最低可用堆大小;uint32_t getMaxAllocPsram()
返回外部SPI RAM可以可以一次分配的最大堆块;
uint8_t getChipRevision()
返回芯片版本号;uint8_t getCpuFreqMHz()
返回芯片时钟频率;uint32_t getCycleCount()
返回自上电以来经过的时钟周期数(不太确定);const char * getSdkVersion()
返回SDK版本号;
uint32_t getFlashChipSize()
返回flash大小;uint32_t getFlashChipSpeed()
返回flash运行速度;FlashMode_t getFlashChipMode()
返回flash工作模式;
FM_QIO = 0, FM_QOUT = 1, FM_DIO = 2, FM_DOUT = 3, FM_FAST_READ = 4, FM_SLOW_READ = 5, FM_UNKNOWN = 255;
uint32_t getSketchSize()
返回当前固件大小;String getSketchMD5()
返回当前固件的MD5校验值;uint32_t getFreeSketchSpace()
返回固件区域剩余大小;
uint64_t getEfuseMac()
获取eps32芯片mac地址(6byte),该地址也可以用作芯片ID;
The chip ID is essentially its MAC address(length: 6 bytes).
使用示例
复位原因
使用rtc_get_reset_reason(0)
和rtc_get_reset_reason(1)
可以分别获取core0
和core1
最近一次复位的原因;(core1在Arduino core for the ESP32中就是用户程序运行的核心)
以上函数会返回1~16
的值,分别对应16种复位原因,具体信息可以参考下面官方例程:
https://github.com/espressif/arduino-esp32/blob/master/libraries/ESP32/examples/ResetReason/ResetReason.ino
总结
本篇主要内容就是上面那些了,使用起来比较简单,更多内容可以参考如下:
https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/Esp.h
https://github.com/espressif/arduino-esp32/blob/master/libraries/ESP32/examples/ChipID/GetChipID/GetChipID.ino