如何在 ESP32 上的 Arduino 中初始化 LittleFS (PlatformIO)
要在 ESP32 上使用 Arduino 附带的 LittleFS 库,使用以下函数
init_filesystem.cpp
#include <LittleFS.h>
bool filesystemOK = false;
void InitFilesystem() {
// 初始化 LittleFS
if (!LittleFS.begin(false /* false: Do not format if mount failed */)) {
Serial.println("Failed to mount LittleFS");
if (!LittleFS.begin(true /* true: format */)) {
Serial.println("Failed to format LittleFS");
} else {
Serial.println("LittleFS formatted successfully");
filesystemOK = true;
}
} else { // Initial mount success
filesystemOK = true;
}
}此外,你需要配置 PlatformIO 使用 LittleFS:
platformio.ini
board_build.filesystem = littlefs现在,在 setup() 中,调用
init_filesystem_call.cpp
InitFilesystem();如果你在包含 LittleFS.h 时遇到错误,你可能需要在 platformio.ini 中显式使用最新的 arduino-esp32 版本:
platformio_platform_packages.ini
platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.5如果你绝对需要使用不支持 LittleFS 的旧 arduino-esp32 版本,你可以使用 lorol/LittleFS 库,如我们之前的文章所述:如何使用 lorol/LittleFS 库在 ESP32 上的 PlatformIO 中初始化 LittleFS
完整 platformio.ini 示例:
platformio_example.ini
[env:esp32dev]
platform = espressif32
platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.5
board = esp32dev
framework = arduino
board_build.filesystem = littlefs
monitor_speed = 115200Check out similar posts by category:
Arduino, Embedded, ESP8266/ESP32, PlatformIO
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow