Conmi的正确答案——ESP32获取MAC地址

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

相关推荐

  1. Conmi正确答案——ESP32获取MAC地址

    2024-04-21 15:22:04       36 阅读
  2. vue获取用户mac地址

    2024-04-21 15:22:04       31 阅读
  3. c#获取本机MAC地址(附源码)

    2024-04-21 15:22:04       26 阅读
  4. ESP32 域名解析得到IP地址

    2024-04-21 15:22:04       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 15:22:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 15:22:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 15:22:04       82 阅读
  4. Python语言-面向对象

    2024-04-21 15:22:04       91 阅读

热门阅读

  1. 【软件工程中的增量模型】

    2024-04-21 15:22:04       32 阅读
  2. MySQL到Doris的StreamingETL实现(Flink CDC 3.0)

    2024-04-21 15:22:04       33 阅读
  3. 《AI编程类工具之六——CodeWhisperer》

    2024-04-21 15:22:04       33 阅读
  4. Hive on spark编译

    2024-04-21 15:22:04       34 阅读
  5. Pytorch——训练时,冻结网络部分参数的方法

    2024-04-21 15:22:04       34 阅读
  6. 概念Android AMS

    2024-04-21 15:22:04       34 阅读
  7. 洛谷 P2279 [HNOI2003] 消防局的设立

    2024-04-21 15:22:04       36 阅读
  8. 树莓派的应用场景都有哪些?

    2024-04-21 15:22:04       38 阅读
  9. css 中backdrop-filter使用

    2024-04-21 15:22:04       36 阅读
  10. pytorch中unsqueeze用法说明

    2024-04-21 15:22:04       36 阅读
  11. esp32s3中使用双通道通信解决TCP粘包问题

    2024-04-21 15:22:04       28 阅读