Arduino ESP8266库函数说明
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino ESP8266库函数说明相关的知识,希望对你有一定的参考价值。
Arduino ESP8266库函数说明
相关资源下载,请参考《Arduino IDE平台ESP8266开发板固件包3.0版本》
库函数解释以官方原文为准,目前版本已经是3.0了,目前该版本问题比较多,对老版本的兼容问题。参考原文
-
ESP.deepSleep(microseconds, mode)
将芯片放入深度睡眠。 是 ,,, 。(GPIO16需要与RST挂钩才能从深度睡眠中唤醒。芯片最多可睡微秒。如果您在醒来时使用深度睡眠并需要 WiFi 功能,则在 WiFi 功能可用之前需要实施额外的功能。 -
mode:参数:WAKE_RF_DEFAULT ;WAKE_RFCAL || WAKE_NO_RFCAL || WAKE_RF_DISABLEDESP.deepSleepMax() || WAKE_RF_DISABLEDWAKE_RF_DEFAULT
-
ESP.deepSleepInstant(microseconds, mode)
工作原理类似于,但立即睡觉,而无需等待WiFi关闭。ESP.deepSleep
-
ESP.restart()
重新启动CPU。 -
ESP.getResetReason()
返回包含人类可读格式中最后重置原因的字符串。 -
ESP.getFreeHeap()
返回免费堆大小。 -
ESP.getHeapFragmentation()
返回碎片度量表(0%是干净的,超过~50%不是无害的) -
ESP.getMaxFreeBlockSize()
返回堆中最大的连续自由RAM块,用于检查堆碎片。注:由于内存管理器开销,最大可访问块将更小。malloc() -
ESP.getChipId()
返回ESP8266芯片ID作为一个32位整数。 -
ESP.getCoreVersion()
返回包含核心版本的字符串。 -
ESP.getSdkVersion()
返回SDK版本作为字符。 -
ESP.getCpuFreqMHz()
将MHz中的CPU频率作为未签名的8位整数返回。 -
ESP.getSketchSize()
返回当前草图的大小,作为未签名的 32 位整数。 -
ESP.getFreeSketchSpace()
返回免费素描空间作为未签名的 32 位整数。 -
ESP.getSketchMD5()
返回包含当前草图的 MD5 的小写字符串。 -
ESP.getFlashChipId()
将闪存芯片 ID 返回为 32 位整数。 -
ESP.getFlashChipSize()
返回闪存芯片大小,在字节中,如SDK所见(可能小于实际大小)。 -
ESP.getFlashChipRealSize()
返回真正的芯片大小,在字节中,基于闪存芯片ID。 -
ESP.getFlashChipSpeed(void)
返回闪存芯片频率,在Hz。 -
ESP.getCycleCount()
返回cpu指令周期计数,因为开始作为一个未签名的32位。这对于非常短的动作(如咬击)的准确时间非常有用。 -
ESP.random()
应用于在ESP上生成真实的随机数。返回一个未签名的32位整数与随机数。还提供替代版本,以填充任意长度的阵列。请注意,似乎需要启用 WiFi 来生成随机数熵,否则将使用伪随机数。 -
ESP.checkFlashCRC()计算程序内存的CRC(不包括任何文件系统),并将其与嵌入在图像中的CRC进行比较。如果此呼叫返回,则闪存已损坏。此时,您可能需要考虑尝试发送 MQTT 消息、开始重新下载应用程序、在SOS模式下闪烁 LED 等。但是,由于此时已知闪存已损坏,因此无法保证应用能够执行任何此类操作,因此在安全关键部署中可能会指示立即关闭故障安全模式。false
-
ESP.getVcc()
可用于测量供应电压。ESP 需要在启动时重新配置 ADC,以便此功能可用。将以下行添加到草图顶部以使用:getVcc
ADC_MODE(ADC_VCC);
在此模式下必须断开脚尖。
请注意,默认情况下,ADC 已配置为使用 TOUT 引脚读取,并且不可用。analogRead(A0)ESP.getVCC()
单一配网案例代码
#include <ESP8266WiFi.h>
void setup()
{
Serial.begin(115200);
Serial.println();
WiFi.begin("network-name", "pass-to-network");
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {}
多wifi配网案例代码
#include <ESP8266WiFiMulti.h>
ESP8266WiFiMulti wifiMulti;
// WiFi connect timeout per AP. Increase when connecting takes longer.
const uint32_t connectTimeoutMs = 5000;
void setup()
{
// Set in station mode
WiFi.mode(WIFI_STA);
// Register multi WiFi networks
wifiMulti.addAP("ssid_from_AP_1", "your_password_for_AP_1");
wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2");
wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3");
}
void loop()
{
// Maintain WiFi connection
if (wifiMulti.run(connectTimeoutMs) == WL_CONNECTED) {
...
}
}
以上是关于Arduino ESP8266库函数说明的主要内容,如果未能解决你的问题,请参考以下文章
ESP32/8266 + Arduino SSD1306库驱动OLED
Arduino ESP8266 For EEPROM数据存储示例
Arduino ESP8266 ESP8266WiFiMulti配网库实例