Почему ESP32 не остается в глубоком сне дольше 35 минут?

У меня была странная проблема с новой пользовательской платой ESP. Я не могу отодвинуть время глубокого сна на 35 минут, независимо от того, как я регулирую время.

Ниже приведен мой текущий соответствующий код, но в основном устройство просыпается, считывает несколько датчиков окружающей среды, отправляет их в облако и затем выключается. Я собираюсь спать в течение часа между чтениями, чтобы сохранить заряд батареи.

 #include <esp_deep_sleep.h>

int SLEEP_TIME;

#define uS_TO_S_FACTOR 9e9  //Коэффициент преобразования для микросекунд в секунды
#define TIME_TO_SLEEP  9e8 //Время, когда ESP32 перейдет в спящий режим (в секундах)

SLEEP_TIME = (uS_TO_S_FACTOR * TIME_TO_SLEEP);
esp_sleep_enable_timer_wakeup(SLEEP_TIME);

esp_deep_sleep_start();

, 👍2

Обсуждение

используйте uint64_t вместо int. и префиксные шестнадцатеричные константы с 0x, @Juraj

@Juraj Спасибо! Это сработало великолепно., @Mulcch