ESP32通过程序从闪存文件系统(SPIFFS)读取信息

ESP32通过程序从闪存文件系统(SPIFFS)读取信息


  • 本示例基于Arduino框架下开发。
  • 开发板型号: ESP32-Dev-Module

⛳SPIFFS插件安装

Arduino IDE是默认不带这个插件的。
  • 下载地址:https://github.com/me-no-dev/arduino-esp32fs-plugin/releases/
    在这里插入图片描述
  • 🎉下载后解压,放置到Arduino IDE安装目录中对应文件夹
    在这里插入图片描述

📝实例程序

#include "SPIFFS.h"
void setup() {

   Serial.begin(115200);
   if(!SPIFFS.begin()){
        Serial.println("初始化SPIFFS失败!");
        return;
   }
    File file = SPIFFS.open("/text.txt");
    if(!file){
        Serial.println("无法打开文件进行读取");
        return;
    }

    Serial.println("文件内容:");

    while(file.available()){

        Serial.write(file.read());
    }

    file.close();
}

void loop() {}

  • 在项目文件夹下建立一个date文件夹,在里面放置需要上传的文件
    *
  • 在date文件夹下,我存放了一个名为:text.txt的文件,内容:
{"code":"200","updateTime":"2021-08-24T20:35+08:00","fxLink":"http://hfx.link/3ep1","daily":[{"fxDate":"2021-08-24","sunrise":"06:01","sunset":"18:56","moonrise":"20:21","moonset":"08:23","moonPhase":"Waning gibbous","tempMax":"34","tempMin":"25","iconDay":"305","textDay":"Light Rain","iconNight":"154","textNight":"Overcast","wind360Day":"330","windDirDay":"NW","windScaleDay":"3-4","windSpeedDay":"13","wind360Night":"225","windDirNight":"SW","windScaleNight":"1-2","windSpeedNight":"3","humidity":"96","precip":"1.0","pressure":"990","vis":"24","cloud":"55","uvIndex":"5"},{"fxDate":"2021-08-25","sunrise":"06:01","sunset":"18:55","moonrise":"20:52","moonset":"09:18","moonPhase":"Waning gibbous","tempMax":"31","tempMin":"25","iconDay":"305","textDay":"Light Rain","iconNight":"305","textNight":"Light Rain","wind360Day":"45","windDirDay":"NE","windScaleDay":"1-2","windSpeedDay":"3","wind360Night":"225","windDirNight":"SW","windScaleNight":"1-2","windSpeedNight":"3","humidity":"98","precip":"1.0","pressure":"994","vis":"10","cloud":"55","uvIndex":"9"},{"fxDate":"2021-08-26","sunrise":"06:02","sunset":"18:54","moonrise":"21:23","moonset":"10:12","moonPhase":"Waning gibbous","tempMax":"31","tempMin":"23","iconDay":"305","textDay":"Light Rain","iconNight":"305","textNight":"Light Rain","wind360Day":"45","windDirDay":"NE","windScaleDay":"1-2","windSpeedDay":"3","wind360Night":"180","windDirNight":"S","windScaleNight":"1-2","windSpeedNight":"3","humidity":"97","precip":"5.1","pressure":"996","vis":"17","cloud":"80","uvIndex":"4"}],"refer":{"sources":["Weather China"],"license":["no commercial use"]}}

程序编译和上传文件上传。

  • 第一步,程序编译上传。

  • 第二步,闪存文件上传。(注意上传闪存文件时,不要打开串口,否则会报错)
    在这里插入图片描述

  • 串口打印读取的闪存文件信息。(连续读取的,信息很长,部分内容截图)
    在这里插入图片描述

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ESP32支持使用SPIFFS文件系统来存储和读取文件。下面是一个示例代码,演示如何在ESP32上使用C语言实现SPIFFS读取文件的功能: ```c #include <stdio.h> #include <string.h> #include "esp_log.h" #include "esp_vfs.h" #include "esp_spiffs.h" #define FILENAME "/spiffs/test.txt" // 文件名 static const char *TAG = "spiffs_test"; // 日志标签 void app_main() { esp_vfs_spiffs_conf_t conf = { .base_path = "/spiffs", .partition_label = NULL, .max_files = 5, .format_if_mount_failed = true }; esp_err_t ret = esp_vfs_spiffs_register(&conf); // 注册SPIFFS文件系统 if (ret != ESP_OK) { ESP_LOGE(TAG, "Failed to mount SPIFFS (%s)", esp_err_to_name(ret)); return; } FILE* fp = fopen(FILENAME, "r"); // 打开文件 if (fp == NULL) { ESP_LOGE(TAG, "Failed to open file for reading"); return; } char buf[128]; while (fgets(buf, sizeof(buf), fp)) { // 逐行读取文件内容 printf("%s", buf); } fclose(fp); // 关闭文件 esp_vfs_spiffs_unregister(NULL); // 取消注册SPIFFS文件系统 } ``` 在这个示例代码中,首先使用 `esp_vfs_spiffs_register` 函数注册SPIFFS文件系统。然后使用 `fopen` 函数打开指定的文件,并使用 `fgets` 函数逐行读取文件内容。最后使用 `fclose` 函数关闭文件,并使用 `esp_vfs_spiffs_unregister` 函数取消注册SPIFFS文件系统。 需要注意的是,SPIFFS文件系统最多支持5个文件,如果需要存储更多的文件,则需要在注册时设置 `max_files` 参数为更大的值。另外,SPIFFS文件系统的基本路径默认为 `/spiffs`,可以在注册时设置 `base_path` 参数为其他路径。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值