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 这个函数后自动复位, 全程没有一点报错

reinux
Posts: 2
Joined: Thu Mar 06, 2025 7:05 am

Re: ESP32P4 进deep sleep 自动复位

Postby reinux » Thu Mar 06, 2025 7:18 am

问题有解决吗?遇到一样的现象,P4运行example/system/deep_sleep,概率出现串口打印乱码/没反应没任何打印/直接重启的现象,似乎P4的deep sleep不太稳定,S3还没遇到过。

reinux
Posts: 2
Joined: Thu Mar 06, 2025 7:05 am

Re: ESP32P4 进deep sleep 自动复位

Postby reinux » Fri Mar 07, 2025 1:37 am

please merge patch:
fix(esp_hw_support): Fixed the issue that light sleep destroyed the parameters of subsequent deep sleep.
fix_bad_dslp_param_after_lightsleep

Who is online

Users browsing this forum: No registered users and 2 guests