完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我对强制轻度睡眠并真正醒来的方法感到困惑。根据 2019 年的最新文档 ESP8266 Non-OS SDK API Reference ver 3.0.1,有一个函数 wifi_fpm_do_sleep 可以定义睡眠超时。
int8 wifi_fpm_do_sleep (uint32 sleep_time_in_us) uint32 sleep_time_in_us:休眠时间,ESP8266超时自动唤醒。单位:我们 范围:10000 ~ 268435455(0xFFFFFFF) • 如果 sleep_time_in_us 为 0xFFFFFFF,ESP8266 将睡眠直到被唤醒,如下所示: • 如果 wifi_fpm_set_sleep_type 设置为 LIGHT_SLEEP_T,ESP8266 可以通过 GPIO 唤醒。 • 如果wifi_fpm_set_sleep_type 设置为MODEM_SLEEP_T,ESP8266 可以通过wifi_fpm_do_wakeup 唤醒。 因此,为了确认,从这里看来,如果超时与 0xffffff 不同,我们可以在不使用任何外部事件的情况下唤醒 esp8266。它是否正确? 这是同一文档中的代码示例(对我不起作用) void fpm_wakup_cb_func1(void) { wifi_fpm_close(); // 禁用强制休眠功能 wifi_set_opmode(STATION_MODE); // 设置站点模式 wifi_station_connect(); // 连接到 AP } void user_func(...) { wifi_station_disconnect(); wifi_set_opmode(NULL_MODE); // 将 WiFi 模式设置为空模式。 wifi_fpm_set_sleep_type(LIGHT_SLEEP_T); // 轻度睡眠 wifi_fpm_open(); // 启用强制睡眠 wifi_fpm_set_wakeup_cb(fpm_wakup_cb_func1); // 设置唤醒回调 wifi_fpm_do_sleep(50*1000); //在这里我把我的延迟,例如 (20000000) , 20 秒,但它不起作用。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
418浏览 6评论
350浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
332浏览 5评论
335浏览 4评论
315浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-22 15:21 , Processed in 0.804753 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号