乐鑫技术交流
直播中

陈键

9年用户 1085经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

如何不用wifi_station_scan() 取得当前已经连线AP的BSSID?

请问如何不用 wifi_station_scan() 取得当前已经连线 AP 的 BSSID?

使用 wifi_station_scan() 会造成当前连线出现断线等问题,是否有其他不影响连线的取得方式?

回帖(1)

最强海贼王

2024-7-13 17:22:36
要获取当前已经连接的AP的BSSID,而不需要使用wifi_station_scan(),您可以尝试以下方法:

1. 使用ESP8266或ESP32的AT指令:

对于ESP8266,您可以使用`AT+CIFSR`指令。这将返回当前连接的AP的SSID和BSSID。对于ESP32,您可以使用`AT+CWQAP`指令,然后通过`AT+CWJAP_CUR`获取当前连接的AP信息。

2. 使用ESP-IDF或Arduino-ESP32库:

如果您使用的是ESP-IDF或Arduino-ESP32库,您可以使用以下方法获取当前连接的AP的BSSID:

对于ESP-IDF:

```c
#include "esp_wifi.h"

void get_connected_ap_bssid() {
    wifi_ap_record_t ap_info;
    esp_wifi_sta_get_ap_info(&ap_info);
    printf("Connected AP BSSID: " MACSTR "n", MAC2STR(ap_info.bssid));
}
```

对于Arduino-ESP32:

```cpp
#include "WiFi.h"

void get_connected_ap_bssid() {
    uint8_t bssid[6];
    WiFi.BSSID(bssid);
    Serial.print("Connected AP BSSID: ");
    for (int i = 0; i < 6; ++i) {
        Serial.print(bssid[i], HEX);
        if (i < 5) Serial.print(":");
    }
    Serial.println();
}
```

这些方法不会影响当前的网络连接,因为它们只是查询当前连接的AP信息,而不会尝试扫描其他AP。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分