我们的代码逻辑就是   开机setup   打印出唤醒原因   esp_deep_sleep_start();  唤醒原因一般有ext0  ext1  timer  touchpad  ulp  大致这五种   rtc存储器不会因为深度睡眠被清理创建的方法RTC_DATA_ATTR int bootCount = 0;      然后就是设置唤醒源esp_sleep_enable_ext0_wakeup(GPIO_NUM_33,1);类似这种

最后你可以在任意情况下去睡眠  esp_deep_sleep_start();  

我们主要讲解这五种唤醒源

exto   ext1 esp_sleep_enable_ext0_wakeup(GPIO_NUM_33,1);

esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);

//Setup interrupt on Touch Pad 3 (GPIO15) touchAttachInterrupt(T3, callback, Threshold); //Configure Touchpad as wakeup source esp_sleep_enable_touchpad_wakeup();

ULP是ESP32做出优秀低功耗产品的关键   无论主 CPU 是处于正常运行模式还是 Deep-sleep 模式,ULP 协处理器都可以独立运行。超低功耗协处理器的补充使得 ESP32 能够胜任一些对低功耗要求较高的应用场合。  

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐