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 导致信道/配置变化

相关推荐
东离与糖宝2 小时前
Spring AI MCP Server正式落地,Java一键部署AI服务保姆级教程
java·人工智能
BUG创建者2 小时前
uniapp 开发app时播放实时视频海康ws的流数据
前端·javascript·vue.js·uni-app·html·音视频
微露清风2 小时前
系统性学习Linux-第八讲-进程间通信
java·linux·学习
Knight_AL2 小时前
Java 中 Date 与 LocalDate 的区别
java·开发语言·数据库
bug攻城狮2 小时前
SpringBoot 脚手架搭建指南:从零构建企业级开发框架
java·spring boot·后端·架构·系统架构·设计规范
我是苏苏2 小时前
Web开发:使用MediatR包实现中介者模式,避免组件之间直接通信
前端·中介者模式
人道领域2 小时前
【苍穹外卖】深度解析:商品浏览四大核心接口设计(附完整数据流转图)
java·数据库·后端·sql
Highcharts.js2 小时前
数据可视化不仅属于金融、互联网|农业数据可视化设计:Farmable与Highcharts的前端设计
前端·信息可视化·数据可视化·highcharts·农业可视化
大傻^2 小时前
【Spring AI -01】Spring AI 2.0 架构重构深度解析:从单体核心到模块化领域的演进
人工智能·spring·架构·spring ai·模块化设计·java 21·架构迁移