单纯修改 AP 名称本身一般不会导致不能连 ,更可能是 配置没有真正生效、终端缓存了旧热点、AP 参数被别处覆盖、或 AP 起了但 DHCP/认证没正常工作。
你可以按这个顺序排查,最直接:
1)先分清是哪一种"连不上"
先看现象,排查方向完全不同:
A. 手机搜不到这个热点
重点查:
-
AP 实际没有启动成功
-
SSID 没有真正改成功
-
后面又被别的代码覆盖了
-
APSTA 共存时信道被改了
B. 手机能搜到热点,但输入密码后连不上
重点查:
-
手机缓存了旧热点信息
-
认证模式兼容性问题
-
max_connection已满 -
密码/加密参数不匹配
C. 手机能连上,但拿不到 IP
重点查:
-
DHCP Server 没起来
-
netif 没创建好
-
AP 启动顺序有问题
2)先确认"你改的名字到底有没有真的生效"
最重要的一步,不要先猜。
在 esp_wifi_set_config() 后、esp_wifi_start() 前后打印:
ESP_LOGI(TAG, "AP SSID=%s", AP_ESP_WIFI_SSID);
ESP_LOGI(TAG, "AP PASS=%s", AP_ESP_WIFI_PASS);
ESP_LOGI(TAG, "AP CH=%d", EXAMPLE_ESP_WIFI_CHANNEL);
ESP_LOGI(TAG, "AP MAX_CONN=%d", EXAMPLE_MAX_STA_CONN);
同时建议再读回配置确认:
wifi_config_t cfg = {0};
esp_wifi_get_config(WIFI_IF_AP, &cfg);
ESP_LOGI(TAG, "REAL SSID=%s", (char *)cfg.ap.ssid);
ESP_LOGI(TAG, "REAL SSID_LEN=%d", cfg.ap.ssid_len);
如果打印出来不是你改的名字
说明不是 SSID 本身的问题,而是:
-
后面还有一次
esp_wifi_set_config(WIFI_IF_AP, ...) -
从 NVS 读了旧配置覆盖
-
AP 初始化函数被重复调用
这个是第一优先级排查点。
3)先把手机上的旧热点记录删掉再试
这个很常见,尤其你只改了 SSID / 安全参数时。
操作:
-
手机里"忽略/忘记此网络"
-
关闭再打开 Wi-Fi
-
重新扫描连接
有些手机会保留旧认证缓存,表面像是"改个名字就连不上"。
4)你的配置里,先做两个稳妥修改
你现在这段先改成更保守、兼容性更好的方式:
建议 1:ssid_len 先不要手动填
改成:
.ssid_len = 0,
原因:
ssid_len=0 时,驱动按字符串处理,最省心。
手动写 strlen() 理论上也可以,但调试阶段先去掉变量因素。
建议 2:认证模式先固定成 WPA2
你现在是:
.authmode = WIFI_AUTH_WPA_WPA2_PSK,
先改成:
.authmode = WIFI_AUTH_WPA2_PSK,
原因:
混合模式在某些终端上兼容性反而差一点,调试时先收敛变量。
5)检查是否被"连接数限制"坑到了
你这里:
.max_connection = EXAMPLE_MAX_STA_CONN
如果这个值是 1,而且已经有别的设备自动连上去了,你当前手机就会表现成"连不上"。
建议调试时先改成:
#define EXAMPLE_MAX_STA_CONN 4
6)如果是 APSTA 模式,要重点查信道
如果你的工程其实不是纯 AP,而是 AP+STA 共存,那就要注意:
-
你配置的 AP channel 可能不会真正生效
-
一旦 STA 连上路由器,AP 信道会跟着 STA 走
-
有些终端在切信道时会表现出连接异常
所以要确认当前模式是不是:
WIFI_MODE_AP
还是:
WIFI_MODE_APSTA
如果是 APSTA,那"改 SSID 后连不上"未必是 SSID 问题,可能是共存模式下信道变化。
7)如果能连上但没 IP,重点查 DHCP / netif
如果手机显示"已连接,但无网络 / 获取 IP 失败",重点看:
-
有没有调用
esp_netif_create_default_wifi_ap() -
DHCP server 有没有启动
-
esp_wifi_start()是否成功 -
AP netif 是否创建成功
这类问题和 SSID 名字基本没关系,只是刚好你改名字后才暴露出来。
8)最小化配置先验证
建议你先用最小配置排除问题:
wifi_config_t ap_config = {
.ap = {
.ssid = "liujinhui",
.ssid_len = 0,
.password = "12345678",
.channel = 6,
.authmode = WIFI_AUTH_WPA2_PSK,
.ssid_hidden = 0,
.max_connection = 4,
.beacon_interval = 100,
},
};
先不要加太多个性化参数,比如:
-
pairwise_cipher -
ftm_responder
先确认基础 AP 能稳定连,再逐项加回来。
最后给你一个最清晰的排查优先级
按这个顺序查最快:
第一步 :打印实际生效的 AP 配置,确认名字有没有被覆盖
第二步 :手机忘记旧热点,重新连接
第三步 :把 ssid_len=0、authmode=WPA2_PSK、max_connection=4
第四步 :确认是不是 APSTA 共存导致信道问题
第五步:如果是"连上没 IP",去查 DHCP / netif
你这个问题里,我认为最值得优先怀疑的点
-
AP 配置被后续代码覆盖
-
手机缓存旧热点
-
不是纯 AP 模式,而是 APSTA 导致信道/配置变化