二十,ESP32 SPIFFS:写一个文件

一,介绍

在本教程中,我我们将使用SPIFFS文件系统如何在ESP32 中创建一个文件。SPIFFS它是旨在用于SPI NOR 闪存器上的嵌入式设备文件系统,您可以在此处阅读有关SPIFFS的更多信息。

在本教程中,我们将检验如何挂载文件系统。创建文件并向里面写入一些文本,而下一个教程中我们将介绍如何读取文件。本教程基于arduino 核心SPIFFS示例

二,硬件

  • ESP32开发板

三,电路图

四,代码设计

我们通过包含SPIFFS.h库来启动代码,因此我们可以访问与文件系统交互所需的所有函数。请注意,这个include将提供一个名为SPIFFS的外部变量,我们将在下面使用它来调用我们需要的一些方法。此extern变量是SPIFFSFS类的对象。

#include "SPIFFS.h"

现在我们可以继续进行Arduino设置,我们将从打开串行连接开始。这样,我们就能输出操作的结果,知道它们是否成功。

Serial.begin(115200);

之后,我们需要挂载文件系统,以便我们可以开始使用它。我们通过在SPIFFS extern变量上调用begin方法来实现。

此方法接收一个布尔标志作为可选输入,该标志指示在挂载失败的情况下是否应格式化SPIFFS文件系统。它的值默认为false,如头文件所示

因为如果SPIFFS从未被格式化,它将无法安装,我们需要格式化它,然后我们将此标志传递为true。在我的情况下,我已经格式化了我的文件系统,所以这个标志没有任何效果。

开始的方法调用将返回如果文件系统成功安装或虚假的,否则。在继续代码之前,我们将使用此方法的返回值来执行错误检查。

if(!SPIFFS.begin(true)){
      Serial.println("An Error has occurred while mounting SPIFFS");
      return;
}

如果挂载文件系统成功,我们可以继续创建文件。为此,我们只需要调用SPIFFS extern变量的open方法。请注意,SPIFFSFS类扩展了FS类,并且此方法继承自该类。

所提到的方法接收文件名作为第一输入,并且接收打开模式。我们将创建一个名为“ /test.txt ” 的文件,因为我们要打开文件进行写入,所以我们使用FILE_WRITE常量,这里定义了它

当然,文件不需要事先存在,我们就可以打开它。在我们的例子中,我们正在创建一个新文件,因为它之前不存在。

此方法调用返回类File的对象,我们将在下面使用它来写入该文件。

File file = SPIFFS.open("/test.txt", FILE_WRITE);

请注意,File重载了C ++ Boolean运算符,这意味着我们可以使用if条件检查文件是否已成功打开。

if(!file){
     Serial.println("There was an error opening the file for writing");
     return;
}

如果它成功打开,我们可以使用File对象上的print 方法简单地将一些内容写入文件。请注意,File类扩展了Stream  类,它扩展了Print类。我们将要使用的print方法继承自Print类。

由于此方法返回写入的字节数,因此我们可以使用IF条件进行错误检查。

f(file.print("TEST")) {
    Serial.println("File was written");
}else {
    Serial.println("File write failed");
}

最后,我们调用close方法来关闭文件。

file.close();

最终的源代码如下所示。

#include "SPIFFS.h"
 
void setup() {
 
  Serial.begin(115200);
 
  if (!SPIFFS.begin(true)) {
    Serial.println("An Error has occurred while mounting SPIFFS");
    return;
  }
 
  File file = SPIFFS.open("/test.txt", FILE_WRITE);
 
  if (!file) {
    Serial.println("There was an error opening the file for writing");
    return;
  }
  if (file.print("TEST")) {
    Serial.println("File was written");
  } else {
    Serial.println("File write failed");
  }
 
  file.close();
}
 
void loop() {}

五,测试代码

要测试代码,只需编译它并使用Arduino IDE将其上传到您的设备,并为ESP32安装Arduino核心。

程序完成后,打开Arduino IDE串行监视器。您应该得到类似于图1的输出,这表示内容已正确写入文件。

二十,ESP32 SPIFFS:写一个文件
图1

六,必要库下载

当前内容已被隐藏,您需要登录才能查看
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
3 条回复 A 作者 M 管理员
  1. 亲,能不能将SPIFFS.h所在的libriary文件夹发我一份呢,我这边一直提醒我缺少这个文件,我在库管理中也未找到该库的下载,仅能找到SPIFFSIniFile.h这个头文件

    • 已更新到文中:六,必要库下载,点击下载即可。

    • 谢谢大佬,大佬万岁!!!

欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论