ESP32-WROOM-32D模组上传Arduino IDE示例编译的固件后总是重启,该如何解决

本文探讨了使用ESP32-WROOM-32D单核模组时,遇到的持续重启问题,原因在于读取 EfuseMac 时遇到CRC错误。通过删除可能导致冲突的代码片段,解决了编译上传固件后的重启现象。寻求专家指点如何避免此问题及正确配置编译过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    手头的ESP32-WROOM-32D模组搭载的是单核CPU,因此Arduino IDE需要配置成单核编译模式。用ESP32的示例编译并上传固件后不断重启:

例如GetChipID,源代码: 

uint32_t chipId = 0;

void setup() {

       Serial.begin(115200);

}

void loop() {

       for(int i=0; i<17; i=i+8) {

         chipId |= ((ESP.getEfuseMac() >> (40 - i)) & 0xff) << i;

       }

       Serial.printf("ESP32 Chip model = %s Rev %d\n", ESP.getChipModel(), ESP.getChipRevision());

       Serial.printf("This chip has %d cores\n", ESP.getChipCores());

  Serial.print("Chip ID: "); Serial.println(chipId);

 

       delay(3000);

}

则运行后会不断重启并打印如下信息:

Rebooting...

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)

configsip: 0, SPIWP:0xee

clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00

mode:DIO, clock div:1

load:0x3fff0018,len:4

load:0x3fff001c,len:1216

ho 0 tail 12 room 4

load:0x40078000,len:10944

load:0x40080400,len:6388

entry 0x400806b4

E (104) system_api: Base MAC address from BLK0 of EFUSE CRC error, efuse_crc = 0x00; calc_crc = 0xd0

abort() was called at PC 0x400e1753 on core 0

ELF file SHA256: 0000000000000000

Backtrace: 0x4008443b:0x3ffb1ee0 0x40084699:0x3ffb1f00 0x400e1753:0x3ffb1f20 0x400d0cee:0x3ffb1f60 0x400d0b9b:0x3ffb1f90 0x400d14f1:0x3ffb1fb0 0x40085651:0x3ffb1fd0

如果把源码中的

for(int i=0; i<17; i=i+8) {

         chipId |= ((ESP.getEfuseMac() >> (40 - i)) & 0xff) << i;

       }

这一部分注释掉,即:

uint32_t chipId = 0;

void setup() {

       Serial.begin(115200);

}

void loop() {

       Serial.printf("ESP32 Chip model = %s Rev %d\n", ESP.getChipModel(), ESP.getChipRevision());

       Serial.printf("This chip has %d cores\n", ESP.getChipCores());

  Serial.print("Chip ID: "); Serial.println(chipId);

 

       delay(3000);

}

则可以完全正。

请教各位大佬指教一下,这是什么原因?该如何解决?

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值