2. 获取esp32被唤醒的原因 esp_deep_sleep_get_wakeup_cause();
这是一个ESP-IDF的原生方法, 如果我们想用, 需要引入头文件
3. 设置具体的唤醒源请看下面的相关章节
#include <Arduino.h> #include <esp_sleep.h> RTC_DATA_ATTR int bootCount = 0; void setup() { Serial.begin(115200); Serial.printf("ESP32 is restart now! It's the %d time\r\n", ++bootCount); delay(5000); esp_sleep_enable_timer_wakeup(20000000); Serial.println(esp_sleep_get_wakeup_cause()); } void loop() { Serial.println("ESP32 will sleep now!"); delay(100); esp_deep_sleep_start(); }
#include <Arduino.h> #include <esp_sleep.h> RTC_DATA_ATTR int bootCount = 0; void setup() { Serial.begin(115200); Serial.printf("ESP32 is restart now! It's the %d time\r\n", ++bootCount); esp_sleep_enable_ext0_wakeup(GPIO_NUM_35, 0); Serial.printf("the wakeup reason is :%d\r\n", esp_sleep_get_wakeup_cause()); } void loop() { delay(3000); Serial.println("ESP32 will sleep now!"); delay(100); esp_deep_sleep_start(); }
#include <Arduino.h> #include <esp_sleep.h> RTC_DATA_ATTR int bootCount = 0; RTC_DATA_ATTR int BTN_Pin_BITMASK = 0; void callbackPin2() { Serial.println("T2 weak ESP32 up"); } void setup() { Serial.begin(115200); Serial.printf("ESP32 is restart now! It's the %d time\r\n", ++bootCount); esp_sleep_enable_touchpad_wakeup(); Serial.printf("the wakeup reason is :%d\r\n", esp_sleep_get_wakeup_cause()); touchAttachInterrupt(2,callbackPin2,40); } void loop() { delay(3000); Serial.println("ESP32 will sleep now!"); delay(100); esp_deep_sleep_start(); }
本文主要介绍在未联网(AP热点)情况下实现WEB交互界面的CSS和javascript库。
本文介绍如何使用Arduino-ESP32库中的API函数获取ESP32的芯片、RAM信息等,并提供了一个示例程序代码。
ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。
ESP32 芯片有34个物理GPIO管脚。每个GPIO管脚都可用作一个通用IO,或连接一个内部的外设信号。IO_MUX ¹、RTC IO MUX 和GPIO交换矩阵用于将信号从外设传输至GPIO管脚。
ESP32Encoder库是一个利用ESP32脉冲计数器硬件外设实现高效旋转编码器读取的软件库。