esp32 sdmmc删除文件代码
时间: 2024-11-28 20:26:15 浏览: 39
ESP32使用SD/MMC卡进行文件操作时,你可以使用第三方库如`espressif-idf`(Espressif IoT Development Framework)提供的`esp_file_system` API来删除文件。这里是一个简单的示例代码片段:
```c
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/sdcard.h"
#include "driver/spi_flash.h"
#include "esp_log.h"
#include "esp_vfs_fat.h"
#define TAG "delete_file_example"
static const char *TAG_SDMMC = "sdmmc";
// 初始化SD/MMC
static esp_err_t sdmmc_init(void)
{
sdmmc_slot_config_t slot_config = SDMMC_CONFIG_DEFAULT();
return esp_ssdmmc_init(&slot_config);
}
// 删除指定路径下的文件
void delete_file(const char* filepath)
{
FATFS fs;
f_mount(&fs, "/sdcard", 1); // 假设你的文件在根目录下
if (f_open(&fs, filepath, FA_OPENRD) == FR_OK) {
f_close(&fs); // 先关闭文件
ESP_LOGI(TAG, "Deleting file %s", filepath);
if (f_unlink(filepath) != FR_OK) {
ESP_LOGE(TAG_SDMMC, "Failed to delete file: %s", strerror(f_errno));
} else {
ESP_LOGI(TAG, "File deleted successfully");
}
} else {
ESP_LOGW(TAG, "Cannot open file for deletion: %s", strerror(f_errno));
}
f_mount(&fs, "", 0); // 退出挂载
}
int main(void)
{
if (sdmmc_init() != ESP_OK) {
ESP_LOGE(TAG, "Failed to initialize SD/MMC");
return -1;
}
// 替换为你要删除的文件路径
delete_file("/sdcard/test.txt");
vTaskDelay(1000 / portTICK_PERIOD_MS); // 等待任务完成
return 0;
}
```
阅读全文