写在前面
原来,ESP32还有本地存储!
这么小的东西,有GPIO、UART、I2C,还有蓝牙和WIFI,简直不要太完美!
测试代码
//加载库
#include "SPIFFS.h"
#include "FS.h"
#define FORMAT_SPIFFS_IF_FAILED true
void setup()
{
//开启串口
Serial.begin(115200);
//挂载FPIFFS
Mount();
//路径
String path = "/hello.txt";
//内容
String str = "hello world !";
//写入(覆盖)
writeTxt_APPEND(SPIFFS,path,str);
//读取
String txt = readTxt(SPIFFS,path);
Serial.println( txt );
}
void loop()
{
}
//挂载FPIFFS
void Mount()
{
//开启SD卡
if(SPIFFS.begin())
{
//打印成功
Serial.println("Mount succeed");
}
else
{
//打印失败
Serial.println("Mount Failed");
}
}
//写入(FILE_WRITE)
void writeTxt(fs::FS &fs,String path,String str)
{
//打开文件
File myFile = fs.open(path, FILE_WRITE); //FILE_WRITE 覆写
//如果文件打开,则进行写入
if (myFile)
{
//打印开始
Serial.println("Start write:" + path);
//写入
myFile.println(str);
// 关闭文件
myFile.close();
//打印完成
Serial.println("Complete write:" + path);
}
//如果文件没有打开,则打印错误
else
{
Serial.println("error:Write failure");
}
}
//写入(FILE_APPEND)
void writeTxt_APPEND(fs::FS &fs,String path,String str)
{
//打开文件
File myFile = fs.open(path, FILE_APPEND); //FILE_APPEND 续写
//如果文件打开,则进行写入
if (myFile)
{
//打印开始
Serial.println("Start write_APPEND:" + path);
//写入
myFile.println(str);
// 关闭文件
myFile.close();
//打印完成
Serial.println("Complete write_APPEND:" + path);
}
//如果文件没有打开,则打印错误
else
{
Serial.println("error:Write failure");
}
}
//读取
String readTxt(fs::FS &fs,String path)
{
//创建返回值
String txt;
//打开文件
File myFile = fs.open(path,FILE_READ); //FILE_READ 只读
//如果文件打开,则进行读取
if (myFile)
{
//打印开始
Serial.println("Start Read:" + path);
//读取
if( myFile.available() )
{
txt = myFile.readString();
}
//关闭文件打开状态
myFile.close();
//打印完成
Serial.println("Complete read:" + path);
}
//如果文件没有打开,则打印错误
else
{
Serial.println("error:Read failure");
}
//返回
return txt;
}