esp32 LittFs 读写Config
时间: 2023-07-03 10:17:08 浏览: 128
在ESP32中,你可以使用LittleFS文件系统来读写Config。Config是一种特殊的键值对,用于存储应用程序的配置信息,例如WiFi SSID和密码等。下面是一个简单的示例代码:
```c
#include "esp_littlefs.h"
#include "esp_err.h"
#include "esp_log.h"
// 初始化LittleFS文件系统
esp_vfs_littlefs_conf_t conf = {
.base_path = "/littlefs",
.partition_label = "my_partition",
.format_if_mount_failed = true
};
esp_err_t err = esp_vfs_littlefs_register(&conf);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to initialize LittleFS (%s)", esp_err_to_name(err));
} else {
// 打开Config文件
const char* file_path = "/littlefs/config.txt";
FILE* f = fopen(file_path, "r");
// 读取WiFi SSID和密码
char ssid[32], password[32];
if (f != NULL) {
fscanf(f, "wifi_ssid=%s\n", ssid);
fscanf(f, "wifi_password=%s\n", password);
fclose(f);
} else {
ESP_LOGE(TAG, "Failed to open config file");
}
// 写入WiFi SSID和密码
f = fopen(file_path, "w");
if (f != NULL) {
fprintf(f, "wifi_ssid=my_wifi_ssid\n");
fprintf(f, "wifi_password=my_wifi_password\n");
fclose(f);
} else {
ESP_LOGE(TAG, "Failed to open config file");
}
// 卸载LittleFS文件系统
esp_vfs_littlefs_unregister("/littlefs");
}
// 如果你需要,你可以通过下面的代码来格式化整个分区
esp_littlefs_format("my_partition");
```
在上面的示例代码中,我们使用`esp_vfs_littlefs_register()`函数来初始化LittleFS文件系统,并使用`fopen()`和`fclose()`函数来打开和关闭Config文件。我们还使用`fprintf()`和`fscanf()`函数来写入和读取键值对。
请注意,为了使用LittleFS库,你需要在你的项目中添加`littlefs`组件。具体的步骤可以参考ESP-IDF文档中的相关章节。另外,需要确保你的分区表配置正确,以便正确地分配和使用LittleFS分区。
阅读全文