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

目的

本文介绍了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

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
很抱歉,我无法提供关于ads1261esp32电压采集的具体Arduino代码。但是,我可以给你一些关于ADS1261和ESP32基本信息,以帮助你开始编写代码。 ADS1261是一款高精度、低功耗的24位模数转换器(ADC),适用于精密测量和数据采集应用。ESP32是一款功能强大的Wi-Fi和蓝牙双模模块,适用于物联网和嵌入式应用。 要在ESP32使用ADS1261进行电压采集,你需要连接它们并编写相应的代码。以下是一个简单的示例代码,用于初始化ADS1261并读取电压值: ```cpp #include <SPI.h> // 定义ADS1261引脚 #define ADS1261_CS_PIN 10 void setup() { // 初始化串行通信 SPI.begin(); SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE1)); // 设置ADS1261引脚为输出 pinMode(ADS1261_CS_PIN, OUTPUT); // ADS1261复位 digitalWrite(ADS1261_CS_PIN, LOW); delay(10); digitalWrite(ADS1261_CS_PIN, HIGH); delay(10); // 配置ADS1261寄存器 // ... // 启动ADS1261转换 // ... } void loop() { // 读取ADS1261转换结果 // ... // 处理电压值 // ... // 延时一段时间 delay(1000); } ``` 在这个示例代码中,你需要根据ADS1261的规格手册配置寄存器,并在`setup()`函数中进行初始化和配置。然后,在`loop()`函数中,你可以使用SPI通信协议读取ADS1261的转换结果,并进行相应的处理。 请注意,这只是一个简单的示例代码,你可能需要根据具体的应用需求进行修改和扩展。另外,确保你正确连接了ADS1261和ESP32,并根据实际情况修改引脚定义。 希望这些信息对你有帮助!如果你有更多关于ADS1261和ESP32的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naisu Xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值