c++ - ESP32 WiFi.status() 总是返回 WL_DICSONNECTED (STA_MODE)
问题描述
我花了很多时间试图解决这个问题。
我添加了多次尝试,在 Wifi.begin() 之前尝试了 WiFi.disconnect()。没有任何效果:status
仍然是WL_DISCONNECTED
(0x06)。
WiFi.mode(WIFI_STA);
for(;;) {
attempt++;
Wifi.begin(ssid, password);
wl_status_t status = WiFi.status();
String m = connectionStatusMessage(status);
log("Connection attempt %d: status is%s", attempt, m.c_str());
if (status == WL_CONNECTED) {
Serial.println();
success("connected (WL_CONNECTED)");
information();
break;
}
[更新] 注意:我使用的是 ESP-WROOM-32 devkit 包。ESP32 sdk 是 PlatformIO 上可用的最新稳定版本。我也测试了其他开发工具包,比如来自 Az-Delivery 的开发工具包。
解决方案
我有一个想法:WiFi.begin(ssid, password)
应该只调用一次。把它放在循环之前:
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
for(;;) {
attempt++;
wl_status_t status = WiFi.status();
String m = connectionStatusMessage(status);
log("Connection attempt %d: status is%s", attempt, m.c_str());
if (status == WL_CONNECTED) {
Serial.println();
success("connected (WL_CONNECTED)");
information();
break;
}
}
推荐阅读
- javascript - 无法从 apollo-server-express 获取功能
- java - 如何使用 Firebase 数据库和不同的 ViewHolder 根据类型(视频、文本、图像)恢复数据?
- php - 脚本手动执行但不通过 PHP 执行。
- php - PHP 检查包含 null 作为字符串的变量
- html - Powershell 替换特殊字符
- python - 打印带有索引和项目的python列表
- php - 没有 /index.php 的子文件夹中有别名的 Apache2.4 和 Laravel 5.4 不起作用
- docker - 如何使用 docker-compose 文件导入 Kibana 仪表板?
- android - 如何创建具有高度的android按钮背景svg?
- android - 为什么按意图添加联系人不起作用?