爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
手头的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 = %sRev %d\n", ESP.getChipModel(), ESP.getChipRevision()); Serial.printf("This chip has %dcores\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, clockdiv:1 load:0x3fff0018,len:4 load:0x3fff001c,len:1216 ho 0 tail 12 room4 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 calledat PC 0x400e1753 on core 0 ELF file SHA256:0000000000000000 Backtrace:0x4008443b:0x3ffb1ee0 0x40084699:0x3ffb1f000x400e1753:0x3ffb1f200x400d0cee:0x3ffb1f600x400d0b9b:0x3ffb1f900x400d14f1:0x3ffb1fb00x40085651: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 = %sRev %d\n", ESP.getChipModel(), ESP.getChipRevision()); Serial.printf("This chip has %dcores\n", ESP.getChipCores()); Serial.print("Chip ID: ");Serial.println(chipId); delay(3000); } 则可以完全正常,请教各位大佬,这是什么原因?该如何解决?
|