在 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.sleep
在 wifi.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)
。
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.sleep
在 wifi.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)
。