You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP8266获取已连接接入点MAC地址并串口打印报错解决问询

问题原因与解决方案

1 报错核心原因

你用到的WIFI_MODE_AP是ESP32 Arduino内核的WiFi模式常量,ESP8266的WiFi库对应常量为WIFI_AP(热点模式)、WIFI_STA(站点模式)、WIFI_AP_STA(混合模式),常量不匹配才会触发未定义报错。
另外你当前的代码逻辑和需求不匹配:你要获取的是已连接的上游接入点MAC地址,但你调用的WiFi.softAPmacAddress()是获取ESP8266自身开启热点的MAC地址,完全是两个不同的对象,而且你没有等待WiFi连接完成就读取参数,也拿不到有效数据。

2 其他语法错误

  • 头文件引入格式错误:#include <"WiFi.h"> 应该改为 #include <WiFi.h>
  • 全局变量定义末尾缺少分号
  • setup 函数缺少闭合大括号
  • WiFi连接未做等待判断,直接读取参数大概率返回空值

3 修正后可用代码

#include <WiFi.h>
const char* ssid = "NetworkSSID";
const char* pass = "NetworkPASS";

void setup(){
  Serial.begin(115200);
  // 配置为站点模式,才可以连接其他WiFi热点
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);
  
  // 等待WiFi连接成功
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi连接成功");
  
  // 读取所连接的接入点MAC地址并打印
  Serial.print("所连接AP的MAC地址为:");
  Serial.println(WiFi.BSSIDstr());
}

void loop(){
  // 无额外业务可以留空
}

核心API说明:WiFi.BSSIDstr() 就是ESP8266 WiFi库中专门用于获取已连接上游接入点MAC地址的方法,返回格式为字符串,直接打印即可。


内容的提问来源于stack exchange,提问作者Victor666

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:15:03