在 NodeMCU 中强制进入浅睡眠模式

Forcing light sleep mode in NodeMCU

RTOS SDK 文档有这个示例 C 代码:

wifi_set_opmode(NULL_MODE);    // set WiFi mode to null mode.
wifi_fpm_set_sleep_type(LIGHT_SLEEP_T); // light sleep
wifi_fpm_open();  
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,3);
gpio_pin_wakeup_enable(13, GPIO_PIN_INTR_LOLEVEL);
wifi_fpm_set_wakeup_cb(fpm_wakup_cb_func1); // Set wakeup callback
wifi_fpm_do_sleep(0xFFFFFFF);  

NodeMCU 是否公开了这些内容?

期待 wifi.sleepwifi.c 中实现 nodemcu:

//wifi.sleep()
static int wifi_sleep(lua_State* L)
{
...
    // set WiFi mode to null mode
wifi_set_opmode(NULL_MODE);
// set force sleep type
wifi_fpm_set_sleep_type(MODEM_SLEEP_T);
wifi_fpm_open();
wifi_fpm_do_sleep_return_value = wifi_fpm_do_sleep(FPM_SLEEP_MAX_TIME);
...
}

然后为了使用 LIGHT_SLEEP_T 调用 wifi_fpm_set_sleep_type,您需要修改 nodemcu 并且为了唤醒,您可能需要在输入更改时调用 wifi.sleep(0)