From a38ffe58fe1d73a56295edb0c6051a46932e0175 Mon Sep 17 00:00:00 2001 From: WEMOS Electronics <11569115@qq.com> Date: Fri, 5 May 2017 01:59:54 -0500 Subject: [PATCH] Add ESP.getChipId() function to get ESP32's ChipID. (#322) * Add ESP.getChipId() function to get ESP32's ChipID. * change getChipId() to getEfuseMac() --- cores/esp32/Esp.cpp | 8 ++++++++ cores/esp32/Esp.h | 2 ++ .../ESP32/examples/ChipID/GetChipID/GetChipID.ino | 14 ++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 libraries/ESP32/examples/ChipID/GetChipID/GetChipID.ino diff --git a/cores/esp32/Esp.cpp b/cores/esp32/Esp.cpp index e80a5e92..59211445 100644 --- a/cores/esp32/Esp.cpp +++ b/cores/esp32/Esp.cpp @@ -212,3 +212,11 @@ bool EspClass::flashRead(uint32_t offset, uint32_t *data, size_t size) { return spi_flash_read(offset, (uint32_t*) data, size) == ESP_OK; } + + +uint64_t EspClass::getEfuseMac(void) +{ + uint64_t _chipmacid; + esp_efuse_read_mac((uint8_t*) (&_chipmacid)); + return _chipmacid; +} diff --git a/cores/esp32/Esp.h b/cores/esp32/Esp.h index 2af27de9..80e995a6 100644 --- a/cores/esp32/Esp.h +++ b/cores/esp32/Esp.h @@ -76,6 +76,8 @@ public: bool flashWrite(uint32_t offset, uint32_t *data, size_t size); bool flashRead(uint32_t offset, uint32_t *data, size_t size); + uint64_t getEfuseMac(); + }; extern EspClass ESP; diff --git a/libraries/ESP32/examples/ChipID/GetChipID/GetChipID.ino b/libraries/ESP32/examples/ChipID/GetChipID/GetChipID.ino new file mode 100644 index 00000000..de8a7386 --- /dev/null +++ b/libraries/ESP32/examples/ChipID/GetChipID/GetChipID.ino @@ -0,0 +1,14 @@ +uint64_t chipid; + +void setup() { + Serial.begin(115200); +} + +void loop() { + chipid=ESP.getEfuseMac();//The chip ID is essentially its MAC address(length: 6 bytes). + Serial.printf("ESP32 Chip ID = %04X",(uint16_t)(chipid>>32));//print High 2 bytes + Serial.printf("%08X\n",(uint32_t)chipid);//print Low 4bytes. + + delay(3000); + +}