完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
关闭低功耗ESP_ERROR_CHECK( esp_wifi_set_ps(WIFI_PS_NONE));
经过测试,两个设备 通过ESP_NOW进行通信。使用信道1,这个时候传输数据很流畅。 但我打开另外一个设备,只初始化ESP_NOW相关的东西,也关闭了低功耗模式。 这个时候,之前的两个设备再进行传输数据,延迟就会变高。 同时,又做了一个测试,不关闭低功耗模式。默认设置为esp_wifi_set_ps(WIFI_PS_MIN_MODEM),这个时候,传输就很正常。 所以,请问下,这个是为什么?谢谢。 |
|
相关推荐
1个回答
|
|
|
根据您提供的信息,我将尝试分析问题并提供可能的解决方案。
1. 首先,当您关闭低功耗模式时,使用信道1的两个设备之间的通信变得流畅。这是因为在低功耗模式下,ESP32会进入睡眠状态,从而降低功耗。但是,这也意味着设备在睡眠期间无法发送或接收数据,从而导致通信延迟。 2. 当您打开另一个设备并初始化ESP_NOW相关的东西时,之前的两个设备之间的通信延迟变高。这可能是因为新设备在初始化过程中占用了信道1,导致之前的两个设备之间的通信受到干扰。此外,新设备可能没有正确配置信道,导致信道冲突。 3. 当您不关闭低功耗模式时,传输变得正常。这是因为ESP32在低功耗模式下会自动管理信道和功耗,从而减少干扰和延迟。 为了解决这个问题,您可以尝试以下步骤: 1. 确保所有设备都使用相同的信道。您可以在初始化ESP_NOW时设置信道,例如:`esp_now_init();` 后,使用 `esp_wifi_set_channel(1);` 设置信道。 2. 为新设备分配一个不同的信道,以避免信道冲突。例如,如果之前的两个设备使用信道1,您可以为新设备设置信道2。 3. 如果可能,尝试使用不同的低功耗模式。ESP32提供了多种低功耗模式,您可以根据您的需求选择合适的模式。例如,您可以尝试使用 `esp_wifi_set_ps(WIFI_PS_MAX_MODEM)`,这将允许设备在低功耗模式下更频繁地唤醒,从而减少通信延迟。 4. 优化您的数据传输策略。例如,您可以在发送数据之前检查信道的空闲状态,以确保信道没有被其他设备占用。此外,您还可以尝试使用数据包确认机制,以确保数据在传输过程中没有丢失。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我能更好地帮助您。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
453 浏览 0 评论
975 浏览 0 评论
1700 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1357 浏览 1 评论
1248 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1272浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
939浏览 3评论
2370浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2556浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1066浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 07:01 , Processed in 0.685658 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
493
