完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
大家好,
我在使用 ESP8266 进行开发时遇到了问题,我的函数enter_light_sleep工作,但消耗量会根据我在 wifi_fpm_do_sleep() 函数中设置的时间而变化。 如果我设置最大时间 (0xFFFFFFF),它可以工作并接近 1,5 mA,但永远不会唤醒或调用wake_cb函数 如果我将时间设置为 15 秒 (15*1000*1000) 等值,它会变为 16 mA(调制解调器睡眠消耗),它会在 15 秒后唤醒并调用我的wake_cb功能。 有什么见解吗? 静态 void enter_light_sleep(void *arg) { mgos_uart_printf(UART_NO, "Enter_light_sleep rn"); wifi_station_disconnect(); wifi_set_opmode(null_mode); wifi_set_opmode_current(null_mode); wifi_set_sleep_type(light_sleep_t); wifi_fpm_open(); wifi_fpm_set_wakeup_cb(wake_cb); wifi_fpm_do_sleep(fpm_sleep_max_time); (无效)arg; } |
|
相关推荐
1个回答
|
|
|
以下是一些可能影响功耗的因素:
1. 超时时间:设置的超时时间越长,ESP8266在轻睡眠模式下保持的时间越长,功耗可能会降低。但是,如果设置的时间过长,设备可能无法在预期的时间内唤醒。 2. 唤醒源:ESP8266在轻睡眠模式下可以配置多个唤醒源,如定时器、GPIO等。不同的唤醒源可能会影响功耗。例如,使用定时器唤醒可能会比使用GPIO唤醒消耗更多的功耗。 3. 硬件配置:ESP8266的硬件配置,如模块、天线等,也可能影响功耗。不同的硬件配置可能会导致功耗差异。 4. 软件优化:在编写代码时,可以优化程序以降低功耗。例如,关闭不必要的外设、降低CPU频率等。 关于您提到的wake_cb函数无法被调用的问题,这可能是由于以下原因: 1. 超时时间设置过长:如果设置的超时时间过长,ESP8266可能无法在预期的时间内唤醒。您可以尝试缩短超时时间,看看是否可以解决问题。 2. 唤醒源配置错误:请检查您的唤醒源配置是否正确。如果配置错误,ESP8266可能无法在轻睡眠模式下被正确唤醒。 3. 软件问题:可能是您的代码中存在问题,导致wake_cb函数无法被调用。请检查您的代码,确保wake_cb函数被正确注册和调用。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
470 浏览 0 评论
991 浏览 0 评论
1709 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1368 浏览 1 评论
1254 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1288浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
943浏览 3评论
2386浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2575浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1071浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-13 21:30 , Processed in 0.888227 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
667
