目录
一,介绍
在本教程中,我我们将使用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的输出,这表示内容已正确写入文件。
亲,能不能将SPIFFS.h所在的libriary文件夹发我一份呢,我这边一直提醒我缺少这个文件,我在库管理中也未找到该库的下载,仅能找到SPIFFSIniFile.h这个头文件
已更新到文中:六,必要库下载,点击下载即可。
谢谢大佬,大佬万岁!!!
谢谢!
學生想學
?????
?
当前实验是的lib是
文章中有库的下载链接,可以进行下载
E (197) SPIFFS: mount failed, -10025
文章写得很详细,谢谢
好