使用Arduino开发ESP32(15):模块基本信息与复位原因获取

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Naisu_kun/article/details/91408143

目的

本文介绍了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)可以分别获取core0core1最近一次复位的原因;(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

猜你喜欢

转载自blog.csdn.net/Naisu_kun/article/details/91408143
今日推荐