AP模式中修改下wifi名称就无法连接了,分析一下

单纯修改 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=0authmode=WPA2_PSKmax_connection=4
第四步 :确认是不是 APSTA 共存导致信道问题
第五步:如果是"连上没 IP",去查 DHCP / netif


你这个问题里,我认为最值得优先怀疑的点

  1. AP 配置被后续代码覆盖

  2. 手机缓存旧热点

  3. 不是纯 AP 模式,而是 APSTA 导致信道/配置变化

相关推荐
立莹Sir20 小时前
Spring Bean生命周期设计思想与源码深度剖析:从表象到本质的全面升级
java·spring·rpc
计算机毕业论文辅导21 小时前
毕业设计避坑指南:工资信息管理系统的设计与实现(Java+SpringBoot实战)
java·spring boot·课程设计
你不是我我21 小时前
【Java 开发日记】为什么要有 time _wait 状态,服务端这个状态过多是什么原因?
java·网络·php
User_芊芊君子21 小时前
别再乱用 ArrayList 了!这 4 个隐藏坑,90% 的 Java 开发者都踩过
android·java·数据库
xcLeigh21 小时前
JAVA项目实战:用飞算 JavaAI 高效开发电商系统核心功能模块
java·ai编程·电商系统·java开发·飞算javaai炫技赛
xcLeigh21 小时前
IoTDB Java 原生 API 实战:SessionPool 从入门到精通
java·开发语言·数据库·api·iotdb·sessionpool
qq12_81151751521 小时前
Java Web 影城会员管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
java·前端·mybatis
杜子不疼.21 小时前
Java 智能体学习避坑指南:3 个常见误区,新手千万别踩,高效少走弯路
java·开发语言·人工智能·学习
冬天vs不冷21 小时前
为什么 Java 不让 Lambda 和匿名内部类修改外部变量?final 与等效 final 的真正意义
android·java·开发语言
星河耀银海21 小时前
JAVA 多线程编程:从基础原理到实战应用
java·开发语言·php