完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用ESP32-C3的SoftAP模式创建web服务器,并使用手机连接到该热点。当手机连接成功并熄屏一段时间后,我发现手机可以连接上热点,但无法访问页面web页面。在此期间,ESP32-C3不输出任何日志,并且无法响应。问题只能通过重新启动ESP32-C3来解决。我使用的ESP-IDF版本是v4.4.3,手机是华为p30,系统hormany os 2.0.0.268。
现象细节: 手机成功连接到ESP32-C3的热点后熄屏。 一段时间后,手机可以连接上热点,但无法访问页面web页面。 ESP32-C3在此期间没有任何日志输出,表现为无响应。 问题只能通过重新启动ESP32-C3解决,重连热点无效。 我已附上了部分相关的代码和日志,并正在寻求任何可能的解决方案或建议。有没有人遇到过类似的问题?非常感谢大家的支持和帮助! 我的web server代码使用例程中的http_server->file_serving框架,相关代码如下:Code: Select all /* Send HTTP response with a run-time generated html consisting of * a list of all files and folders under the requested path. * In case of SPIFFS this returns empty list when path is any * string other than '/', since SPIFFS doesn't support directories */static esp_err_t http_resp_dir_html(httpd_req_t *req, const char *dirpath){ char entrypath[FILE_PATH_MAX]; char entrysize[16]; const char *entrytype; struct dirent *entry; struct stat entry_stat; extern const unsigned char upload_script_en_start[] asm("_binary_page_en_html_start"); extern const unsigned char upload_script_en_end[] asm("_binary_page_en_html_end"); extern const unsigned char upload_script_start[] asm("_binary_page_cn_html_start"); extern const unsigned char upload_script_end[] asm("_binary_page_cn_html_end"); const unsigned char *chosen_script_start; const unsigned char *chosen_script_end; if (english_model) { chosen_script_start = upload_script_en_start; chosen_script_end = upload_script_en_end; } else { chosen_script_start = upload_script_start; chosen_script_end = upload_script_end; } const size_t upload_script_size = (chosen_script_end - chosen_script_start); /* Add file upload form and script which on execution sends a POST request to /upload */ httpd_resp_send(req, (const char *)chosen_script_start, upload_script_size); return ESP_OK;}/* Handler to download a file kept on the server */static esp_err_t download_get_handler(httpd_req_t *req){ char filepath[FILE_PATH_MAX]; FILE *fd = NULL; struct stat file_stat; const char *filename = get_path_from_uri(filepath, ((struct file_server_data *)req->user_ctx)->base_path, req->uri, sizeof(filepath)); if (!filename) { ESP_LOGE(TAG, "Filename is too long"); /* Respond with 500 Inter 以下是log:Code: Select all I (3538) wifi_init: rx ba win: 6I (3548) wifi_init: tcpip mbox: 32I (3548) wifi_init: udp mbox: 6I (3548) wifi_init: tcp mbox: 6I (3558) wifi_init: tcp tx win: 5744I (3558) wifi_init: tcp rx win: 5744I (3568) wifi_init: tcp mss: 1440I (3568) wifi_init: WiFi IRAM OP enabledI (3578) wifi_init: WiFi RX IRAM OP enabledI (3578) phy_init: phy_version 912,d001756,Jun 2 2022,16:28:07I (3628) wifi:mode : softAP (68:b6:b3:ac:31:2d)I (3628) wifi:Total power save buffer number: 16I (3628) wifi:Init max length of beacon: 752/752I (3628) wifi:Init max length of beacon: 752/752I (3638) wifi softAP: wifi_init_softap finished. SSID:EG1155_Assistant password:12345678 channel:1I (3638) file_server: Starting HTTP Serveruartsend_read_XML_infog_xml_file_read_erroruartsend_read_XML_infoVbatRsmpH==100000I (8125128) wifi:new:<1,1>, old:<1,1>, ap:<1,1>, sta:<255,255>, prof:1I (8125128) wifi:station: 42:a3:bf:4c:c2:d3 join, AID=1, bgn, 40U I (8125158) wifi softAP: station 42:a3:bf:4c:c2:d3 join, AID=1I (8126378) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2W (8126778) wifi:idx:2 (ifx:1, 42:a3:bf:4c:c2:d3), tid:0, ssn:14, winSize:64return http_resp_dir_html!return http_resp_dir_html!I (9760938) file_server: Requested URI: /favicon.icoI (9762358) file_server: Requested URI: /favicon.icoreturn icon!return http_resp_dir_html!I (9763948) file_server: Requested URI: /favicon.icoreturn icon!I (10151578) wifi:station: 42:a3:bf:4c:c2:d3 leave, AID = 1, bss_flags is 658531, bss:0x3fcb437cI (10151578) wifi:new:<1,0>, old:<1,1>, ap:<1,1>, sta:<255,255>, prof:1W (10151578) wifi:idxI (10151578) wifi softAP: station 42:a3:bf:4c:c2:d3 leave, AID=1I (10230878) wifi:new:<1,1>, old:<1,0>, ap:<1,1>, sta:<255,255>, prof:1I (10230878) wifi:station: 42:a3:bf:4c:c2:d3 join, AID=1, bgn, 40UI (10230908) wifi softAP: station 42:a3:bf:4c:c2:d3 join, AID=1I (10231118) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2W (10231808) wifi:idx:2 (ifx:1, 42:a3:bf:4c:c2:d3), tid:0, ssn:14, winSize:64I (10366608) wifi:station: 42:a3:bf:4c:c2:d3 leave, AID = 1, bss_flags is 658547, bss:0x3fcb437cI (10366608) wifi:new:<1,0>, old:<1,1>, ap:<1,1>, sta:<255,255>, prof:1I (10366618) wifi softAP: station 42:a3:bf:4c:c2:d3 leave, AID=1I (10394878) wifi:new:<1,1>, old:<1,0>, ap:<1,1>, sta:<255,255>, prof:1 I (10394878) wifi:station: 42:a3:bf:4c:c2:d3 join, AID=1, bgn, 40UI (10394918) wifi softAP: station 42:a3:bf:4c:c2:d3 join, AID=1I (10395098) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2I (10396138) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2W (10396768) wifi:idx:2 (ifx:1, 42:a3:bf:4c:c2:d3), tid:0, ssn:14, winSize:64W (11211828) wifi:idxW (11214648) wifi:idx:2 (ifx:1, 42:a3:bf:4c:c2:d3), tid:0, ssn:1238, winSize:64I (11215818) wifi:station: 42:a3:bf:4c:c2:d3 leave, AID = 1, bss_flags is 658531, bss:0x3fcb437cI (11215818) wifi:new:<1,0>, old:<1,1>, ap:<1,1>, sta:<255,255>, prof:1 W (11215818) wifi:idxI (11215818) wifi softAP: station 42:a3:bf:4c:c2:d3 leave, AID=1 |
|
相关推荐
1个回答
|
|
根据您的描述,这个问题可能是由以下几个原因导致的:
1. **电源管理**:ESP32-C3可能在熄屏后进入了低功耗模式,导致网络连接或服务器功能暂时中断。检查您的代码,确保在低功耗模式下仍然保持网络连接和服务器的正常运行。 2. **网络连接稳定性**:手机在熄屏后可能暂时断开了与ESP32-C3的连接。这可能是由于手机的电源管理策略或ESP32-C3的网络设置问题。尝试调整ESP32-C3的网络配置,以确保在熄屏期间保持稳定的连接。 3. **服务器响应超时**:ESP32-C3的Web服务器可能在处理请求时超时,导致无法响应。检查服务器代码,确保在处理请求时没有无限循环或长时间阻塞的操作。 4. **内存问题**:ESP32-C3可能在运行过程中遇到了内存不足的问题,导致服务器无法正常工作。检查您的代码,确保没有内存泄漏或过多的内存占用。 5. **ESP-IDF版本问题**:您使用的ESP-IDF版本可能存在一些已知或未知的bug,导致Web服务器在特定情况下无法正常工作。尝试升级到较新的ESP-IDF版本,看看问题是否得到解决。 6. **手机系统问题**:华为P30的HarmonyOS 2.0.0.268可能存在一些与ESP32-C3 SoftAP模式不兼容的问题。尝试在其他手机上测试,看看问题是否仍然存在。 为了解决这个问题,您可以尝试以下步骤: 1. **检查电源管理设置**:确保ESP32-C3在低功耗模式下仍然保持网络连接和服务器的正常运行。 2. **优化网络连接稳定性**:调整ESP32-C3的网络配置,确保在熄屏期间保持稳定的连接。 3. **检查服务器代码**:确保服务器在处理请求时没有无限循环或长时间阻塞的操作。 4. **检查内存使用情况**:确保代码中没有内存泄漏或过多的内存占用。 5. **升级ESP-IDF版本**:尝试升级到较新的ESP-IDF版本,看看问题是否得到解决。 6. **测试其他手机**:在其他手机上进行测试,以排除手机系统问题的可能性。 通过以上步骤,您应该能够找到问题的原因并解决它。如果问题仍然存在,请考虑寻求专业的技术支持。 |
|
|
|
只有小组成员才能发言,加入小组>>
429浏览 6评论
362浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
343浏览 5评论
349浏览 4评论
327浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 07:42 , Processed in 0.553621 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191