ESP32P4 进deep sleep 自动复位

downsun
Posts: 2
Joined: Sun Jan 19, 2025 5:44 am

ESP32P4 进deep sleep 自动复位

Postby downsun » Sun Jan 19, 2025 9:02 am

#include <stdio.h>
#include "driver/gpio.h"
#include <time.h>
#include <sys/time.h>
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_sleep.h"
#include "esp_log.h"
#include "driver/rtc_io.h"
#include "nvs_flash.h"
#include "nvs.h"

#define DEFAULT_WAKEUP_PIN 25
#define DEFAULT_WAKEUP_LEVEL ESP_GPIO_WAKEUP_GPIO_LOW

void example_deep_sleep_register_gpio_wakeup(void)
{
const gpio_config_t config = {
.pin_bit_mask = BIT(DEFAULT_WAKEUP_PIN),
.mode = GPIO_MODE_INPUT,
.pull_up_en = 1,
.pull_down_en = 0

};

ESP_ERROR_CHECK(gpio_config(&config));
esp_sleep_enable_ext1_wakeup(DEFAULT_WAKEUP_PIN, DEFAULT_WAKEUP_LEVEL);
//esp_deep_sleep_enable_gpio_wakeup(BIT(DEFAULT_WAKEUP_PIN), DEFAULT_WAKEUP_LEVEL);
printf("Enabling GPIO wakeup on pins GPIO%d\n", DEFAULT_WAKEUP_PIN);
}

void app_main()
{
uint64_t wakeup_pin_mask = 0;
example_deep_sleep_register_gpio_wakeup();
vTaskDelay(500);
printf("sleep\r\n");
vTaskDelay(400);
esp_deep_sleep_start();
//esp_light_sleep_start();
while(1)
{
//printf("system:run\r\n");
vTaskDelay(4000);
}
}

//我使用esp_deep_sleep_start 这个函数后自动复位, 全程没有一点报错

Who is online

Users browsing this forum: No registered users and 41 guests