完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一块 ESP-12F 板。它应休眠直到获得中断(GPIO),然后立即通过 WIFI 通知服务器,然后再次休眠 - 直到下一个中断。
我已经创建了一个用于测试的示例程序,请参阅 。 它通过 UDP 发送两条消息,然后休眠 5 秒并再次发送两条消息: 代码:全选 while (1) { for (int cnt=0; cnt < 2; cnt++) { send_udp_packet(); sleep(1); } ESP_ERROR_CHECK( esp_wifi_stop() ); ESP_ERROR_CHECK( esp_sleep_enable_timer_wakeup(5*1000*1000) ); ESP_LOGE(TAG, " ---> enter light sleep"); ESP_ERROR_CHECK( esp_light_sleep_start() ); ESP_LOGE(TAG, " ---> returned from light sleep"); ESP_ERROR_CHECK( esp_wifi_start() ); sleep(6); } 在进入 light_sleep 之前,每次都会建立 WIFI 连接(100%)。但是在 light_sleep 之后,有时会失败(有时它可以正常工作 70 个周期 - 但有时会在第二次睡眠时失败): 代码:全选14:44:10 E (24108) app: ---> returned from light sleep 14:44:10 I (24115) app: SYSTEM_EVENT_STA_START 14:44:16 E (30112) app: Error occured during sending: Host is unreachable/118 14:44:17 E (31111) app: Error occured during sending: Host is unreachable/118 14:44:18 E (32112) app: ---> enter light sleep 当它工作正常时,输出如下所示: 代码:全选14:43:57 E (10995) app: ---> returned from light sleep 14:43:57 I (11002) app: SYSTEM_EVENT_STA_START 14:43:57 I (11128) wifi: state: 0 -> 2 (b0) 14:43:57 I (11135) wifi: state: 2 -> 3 (0) 14:43:57 I (11145) wifi: state: 3 -> 5 (10) 14:43:57 I (11148) wifi: pm start, type: 1 14:43:57 I (11180) app: SYSTEM_EVENT_STA_CONNECTED 14:43:58 I (12171) event: sta ip: 192.168.178.200, mask: 255.255.255.0, gw: 192.168.178.1 14:43:58 I (12181) app: SYSTEM_EVENT_STA_GOT_IP 14:44:03 I (17006) app: Message 2 sent 14:44:04 I (18006) app: Message 3 sent 14:44:05 I (19003) wifi: state: 5 -> 0 (0) 14:44:05 I (19007) wifi: pm stop 14:44:05 I (19010) app: SYSTEM_EVENT_STA_DISCONNECTED 14:44:05 I (19018) app: SYSTEM_EVENT_STA_STOP 14:44:05 E (19103) app: ---> enter light sleep 这是相同的跟踪,当启用 wifi 调试时: 代码:全选14:57:55 E (10827) app: ---> returned from light sleep 14:57:55 I (10833) wifi: mode : sta (ec:fa:bc:a7:43:64) 14:57:55 I (10836) wifi: add if0 14:57:55 I (10839) app: SYSTEM_EVENT_STA_START 14:57:55 D (10843) wifi: first chan=1 14:57:55 D (10845) wifi: cnx_start_connect 50f 14:57:55 D (10851) wifi: scan_cancel 3 14:57:55 D (10855) wifi: scan_op_end 0 4 14:57:55 D (10859) wifi: enter scan_done 4838845 1 14:57:55 I (10865) wifi: scandone 14:57:55 D (10870) wifi: first chan=1 14:57:55 D (10874) wifi: cnx_start_handoff_cb 14:57:55 D (10879) wifi: failed 14:57:55 D (10882) wifi: scan start 4861963 14:57:55 D (10887) wifi: scan_inter_channel_timeout 1 14:57:55 D (10893) wifi: rd: chan=1 active max=11 14:57:55 D (10899) wifi: scan_op_start 2412 1 14:57:55 D (10904) wifi: rd: chan=1 active max=11 14:57:55 D (10910) wifi: scan_send_probe 14:57:55 D (10914) wifi: ucast probe 14:57:55 D (10918) wifi: send probe req on channel 1 bssid ff:ff:ff:ff:ff:ff ssid Eckbank 14:58:01 E (16842) app: Error occured during sending: Host is unreachable/118 14:58:02 E (17843) app: Error occured during sending: Host is unreachable/118 14:58:03 D (18842) wifi: scan_cancel 7 14:58:03 D (18844) wifi: scan_op_end 0 4 14:58:03 D (18846) wifi: enter scan_done 12827271 1 14:58:03 I (18849) wifi: scandone 14:58:03 D (18850) wifi: first chan=1 14:58:03 D (18852) wifi: cnx_start_handoff_cb 14:58:03 D (18855) wifi: failed 14:58:03 I (18859) wifi: del if0 14:58:03 I (18864) wifi: usl 14:58:03 D (18867) wifi: sul 0 0 14:58:03 E (18871) app: ---> enter light sleep 我正在使用分支“release/v3.3”中的“ESP8266_RTOS_SDK”以及“xtensa-lx106 1.22.0-100-ge567ec7”。 下载/安装。 我的代码有问题吗?我需要额外的睡眠吗?wifi代码是闭源的,真是可惜了! |
|
相关推荐
1个回答
|
|
可能的原因有以下几个:
1. WIFI 连接失败:可能是由于 WIFI 密码错误、WIFI网络不可用等原因导致连接失败。可以通过添加连接失败的处理程序来捕获连接错误并进行相应的处理。 2. 中断未触发:由于 GPIO 中断触发的唯一条件是外部事件的发生,如果外部事件没有发生,将无法触发中断。因此,如果连接失败,请确保 GPIO 中断已正确连接到外部事件。 3. 资源不足:ESP8266 具有有限的 RAM 和存储空间。当资源不足时,可能会导致连接失败或其他未知错误。可以尝试优化代码和减少内存使用来解决这个问题。 4. 电源问题:在低功耗模式下,电源可能会不稳定。这可能导致 ESP8266 的意外重启或其他问题。可以尝试添加额外的电容器或控制电源以解决这个问题。 综上所述,如果您的 ESP8266 在连接 WIFI 后经常失败,请依次排除以上可能的原因,并进行相应的处理。 |
|
|
|
只有小组成员才能发言,加入小组>>
1123 浏览 1 评论
574浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
461浏览 5评论
462浏览 4评论
435浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 15:18 , Processed in 0.956229 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号