ESP32-CAM无法创建WiFi热点问题求助
ESP32-CAM反复重启无法创建WiFi热点的解决方法
问题分析
从串口输出的rst:0xc (SW_CPU_RESET)可以看出,ESP32-CAM正在软件触发CPU复位,导致系统反复重启,根本无法正常执行WiFi.softAP()指令。
排查与解决步骤
1. 优先排查供电问题
ESP32-CAM启动WiFi时功耗较高,供电不足是常见的重启诱因:
- 使用5V/2A及以上的电源供电,避免依赖电脑USB口(部分USB口功率不足);
- 更换质量可靠的USB线,减少线损导致的电压下降;
- 检查模块电源引脚是否存在虚焊、接触不良情况。
2. 调整代码逻辑
原代码存在事件绑定不匹配、无状态检查等问题,修改后的代码如下:
#include <WiFi.h> // 绑定SoftAP专属的客户端连接事件(原代码绑定的是Station模式事件,与当前场景不匹配) void onStationConnected(WiFiEvent_t event, WiFiEventInfo_t info){ Serial.print("客户端已连接,MAC地址: "); Serial.println(info.wifi_ap_sta_connected.mac); } void setup() { Serial.begin(115200); delay(1000); // 给串口初始化留足时间,避免调试信息丢失 // 明确设置WiFi为纯AP模式,避免模式冲突 WiFi.mode(WIFI_AP); // 启动SoftAP并检查结果,直观判断是否成功 bool apResult = WiFi.softAP("ESP"); if(apResult){ Serial.println("WiFi热点启动成功"); Serial.print("热点IP地址: "); Serial.println(WiFi.softAPIP()); } else { Serial.println("热点启动失败"); } // 注册正确的SoftAP事件回调 WiFi.onEvent(onStationConnected, ARDUINO_EVENT_WIFI_AP_STACONNECTED); } void loop() {}
代码调整说明:
- 添加
delay(1000):确保串口初始化完成,避免早期调试信息丢失; - 强制设置
WiFi.mode(WIFI_AP):明确WiFi工作模式,消除模式冲突风险; - 检查
WiFi.softAP()返回值:直接反馈热点启动状态,便于排查; - 更换事件绑定:替换为SoftAP专属的客户端连接事件,避免回调逻辑不匹配导致的潜在崩溃。
3. 核对烧录配置
烧录时需确保配置与ESP32-CAM硬件完全匹配:
- Flash大小选择4MB(绝大多数ESP32-CAM模块标配);
- Flash模式选择DIO(串口输出中
mode:DIO为正确状态,若烧录工具设置错误需修正); - 烧录完成后,确保GPIO0引脚处于拉高状态(烧录时需拉低,烧录后恢复拉高,否则会重复进入下载模式)。
4. 排除硬件干扰
若上述方法无效,可尝试暂时断开摄像头模块(若有焊接),单独测试WiFi功能,排查是否是摄像头模块与WiFi天线的资源冲突导致系统崩溃。
内容的提问来源于stack exchange,提问作者Idea Softworks
相关产品推荐
相关产品推荐

