PlatformIO 新手指南:为 ESP32-S3 N16R8 开发板配置 16MB Flash 与 8MB PSRAM
发表于更新于
字数总计:362阅读时长:1分钟阅读量: 广西
单片机esp32s3n16r8PlatformIO 新手指南:为 ESP32-S3 N16R8 开发板配置 16MB Flash 与 8MB PSRAM
nodaoli一、问题背景
当你使用 ESP32-S3 N16R8(16MB Flash + 8MB PSRAM)开发时,会发现 PlatformIO 的 boards 列表中没有完全匹配的型号。默认选择 esp32-s3-devkitc-1 虽能编译,但系统仍按 4MB Flash 分配资源,导致大量存储空间无法使用。
二、解决方案:自定义配置三步走
1 2 3 4 5 6 7 8 9 10 11 12
| [env:esp32s3-n16r8] platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino
board_upload.flash_size = 16MB
board_build.arduino.memory_type = qio_opi build_flags = -DBOARD_HAS_PSRAM
|
步骤 2:验证配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| void setup() {
Serial.begin(115200); Serial.println("=== ESP32 设备信息 ===");
// 芯片型号 esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
Serial.printf("芯片型号: ESP32");
if (chip_info.model == CHIP_ESP32S3) Serial.print("-S3");
Serial.println(); // Flash 大小 size_t flash_size = 0;
esp_flash_get_size(NULL, &flash_size);
Serial.printf("Flash 容量: %u MB\n", flash_size / (1024 * 1024));
// PSRAM if (psramFound()) { Serial.printf("PSRAM 容量: %u MB\n", ESP.getPsramSize() / (1024 * 1024)); } else { Serial.println("PSRAM: 未检测到"); }
// SDK 版本 Serial.printf("ESP-IDF 版本: %s\n", esp_get_idf_version());
// MAC 地址 uint8_t mac[6];
esp_read_mac(mac, ESP_MAC_WIFI_STA);
Serial.printf("MAC 地址: %02X:%02X:%02X:%02X:%02X:%02X\n",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
}
|
三、常见问题