ESP-IDF版本:v5.2.1
ESP32芯片型号:ESP32C3(4M flash版本)
ESP支持的MAC地址有:
typedef enum {
ESP_MAC_WIFI_STA, /**< MAC for WiFi Station (6 bytes) */
ESP_MAC_WIFI_SOFTAP, /**< MAC for WiFi Soft-AP (6 bytes) */
ESP_MAC_BT, /**< MAC for Bluetooth (6 bytes) */
ESP_MAC_ETH, /**< MAC for Ethernet (6 bytes) */
ESP_MAC_IEEE802154, /**< if CONFIG_SOC_IEEE802154_SUPPORTED=y, MAC for IEEE802154 (8 bytes) */
ESP_MAC_BASE, /**< Base MAC for that used for other MAC types (6 bytes) */
ESP_MAC_EFUSE_FACTORY, /**< MAC_FACTORY eFuse which was burned by Espressif in production (6 bytes) */
ESP_MAC_EFUSE_CUSTOM, /**< MAC_CUSTOM eFuse which was can be burned by customer (6 bytes) */
ESP_MAC_EFUSE_EXT, /**< if CONFIG_SOC_IEEE802154_SUPPORTED=y, MAC_EXT eFuse which is used as an extender for IEEE802154 MAC (2 bytes) */
} esp_mac_type_t;
遍历获取全部MAC地址:
// 获取mac地址
uint8_t mac_address[6];
esp_err_t err;
for (esp_mac_type_t mac_type = ESP_MAC_WIFI_STA; mac_type <= ESP_MAC_EFUSE_EXT; mac_type++)
{
printf(
"MAC Type: %d (%s)\n", mac_type,
mac_type == ESP_MAC_WIFI_STA ? "ESP_MAC_WIFI_STA"
: mac_type == ESP_MAC_WIFI_SOFTAP ? "ESP_MAC_WIFI_SOFTAP"
: mac_type == ESP_MAC_BT ? "ESP_MAC_BT"
: mac_type == ESP_MAC_ETH ? "ESP_MAC_ETH"
: mac_type == ESP_MAC_IEEE802154 ? "ESP_MAC_IEEE802154"
: mac_type == ESP_MAC_BASE ? "ESP_MAC_BASE"
: mac_type == ESP_MAC_EFUSE_FACTORY ? "ESP_MAC_EFUSE_FACTORY"
: mac_type == ESP_MAC_EFUSE_CUSTOM ? "ESP_MAC_EFUSE_CUSTOM"
: mac_type == ESP_MAC_EFUSE_EXT ? "ESP_MAC_EFUSE_EXT"
: "Unknown");
err = esp_read_mac(mac_address, mac_type);
if (err == ESP_OK)
{
printf("MAC Address: " MACSTR "\n\n", mac_address[0], mac_address[1], mac_address[2], mac_address[3], mac_address[4], mac_address[5]);
}
else
{
printf("Failed to read MAC address: %s\n\n", esp_err_to_name(err));
}
}
运行结果:
MAC Type: 0 (ESP_MAC_WIFI_STA)
MAC Address: ec:da:3b:ff:ff:94
MAC Type: 1 (ESP_MAC_WIFI_SOFTAP)
MAC Address: ec:da:3b:ff:ff:95
MAC Type: 2 (ESP_MAC_BT)
MAC Address: ec:da:3b:ff:ff:96
MAC Type: 3 (ESP_MAC_ETH)
MAC Address: ec:da:3b:ff:ff:97
MAC Type: 4 (ESP_MAC_IEEE802154)
[0;31mE (308) system_api: 4 mac type is incorrect (not found)[0m
Failed to read MAC address: ESP_ERR_NOT_SUPPORTED
MAC Type: 5 (ESP_MAC_BASE)
MAC Address: ec:da:3b:ff:ff:94
MAC Type: 6 (ESP_MAC_EFUSE_FACTORY)
MAC Address: ec:da:3b:ff:ff:94
MAC Type: 7 (ESP_MAC_EFUSE_CUSTOM)
[0;31mE (338) system_api: eFuse MAC_CUSTOM is empty[0m
[0;31mE (338) system_api: unsupported mac type[0m
[0;31mE (348) system_api: MAC address generation error[0m
Failed to read MAC address: ESP_ERR_NOT_SUPPORTED
MAC Type: 8 (ESP_MAC_EFUSE_EXT)
[0;31mE (358) system_api: 8 mac type is incorrect (not found)[0m
Failed to read MAC address: ESP_ERR_NOT_SUPPORTED