Skip to content

Commit a38ffe5

Browse files
wemosme-no-dev
authored andcommitted
Add ESP.getChipId() function to get ESP32's ChipID. (espressif#322)
* Add ESP.getChipId() function to get ESP32's ChipID. * change getChipId() to getEfuseMac()
1 parent cc73f17 commit a38ffe5

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

Diff for: cores/esp32/Esp.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -212,3 +212,11 @@ bool EspClass::flashRead(uint32_t offset, uint32_t *data, size_t size)
212212
{
213213
return spi_flash_read(offset, (uint32_t*) data, size) == ESP_OK;
214214
}
215+
216+
217+
uint64_t EspClass::getEfuseMac(void)
218+
{
219+
uint64_t _chipmacid;
220+
esp_efuse_read_mac((uint8_t*) (&_chipmacid));
221+
return _chipmacid;
222+
}

Diff for: cores/esp32/Esp.h

+2
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ class EspClass
7676
bool flashWrite(uint32_t offset, uint32_t *data, size_t size);
7777
bool flashRead(uint32_t offset, uint32_t *data, size_t size);
7878

79+
uint64_t getEfuseMac();
80+
7981
};
8082

8183
extern EspClass ESP;
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
uint64_t chipid;
2+
3+
void setup() {
4+
Serial.begin(115200);
5+
}
6+
7+
void loop() {
8+
chipid=ESP.getEfuseMac();//The chip ID is essentially its MAC address(length: 6 bytes).
9+
Serial.printf("ESP32 Chip ID = %04X",(uint16_t)(chipid>>32));//print High 2 bytes
10+
Serial.printf("%08X\n",(uint32_t)chipid);//print Low 4bytes.
11+
12+
delay(3000);
13+
14+
}

0 commit comments

Comments
 (0)