首页 > 其他分享 >esp8266闪存文件系统<FS.h>

esp8266闪存文件系统<FS.h>

时间:2022-11-03 17:58:08浏览次数:65  
标签:dataFile 闪存 esp8266 文件系统 file SPIFFS println Serial name

    

 1.存储的文件是编译后的;

用闪存文件系统时要申请空间

 

 

 

2. SPIFFS.begin();  启用闪存文件系统;

3. SPIFFS.format();  格式化SPIFFS.open(file_name【被操作的文件位置+文件名】,"代表要对文件进行的操作")  w代表写入,从文件最开始的地方写入,不会保留原来的内容;r代表读取;a代表添加信息,保留文件前面原有的信息,在后边写入信息;a与w在写入时,如果没有该文件,就自己创建。

4.File  dataFile=SPIFFS.open(file_name,"w");

(1). dataFile.println("代表写入文件的内容");

(2). dataFile.close();  关闭dataFile文件;

(3). dataFile.size();  返回读取的dataFile文件大小;

(4). (char)dataFile.size();  读取dataFile文件的内容,每次只返回一个char类型的数据

5.SPIFFS.exists(file_name);  检查闪存中是否有file_name文件;

6. SPIFFS.remove(file_name);  删除文件file_name;删除成功会返回true;

7. Dir dir = SPIFFS.openDir(folder_name);   // 建立“目录”对象

8. dir.next()  用于检查目录中是否还有“下一个文件”,如果有返回true

9.dir.fileName()  获取文件名;

10. FSInfo fs_info;  建立了FSInfo 对象,用于存储闪存状态信息。

(1). SPIFFS.info(fs_info);  通过info函数将闪存状态信息赋给fs_info。

(2).fs_info.totalBytes  返回可用空间总和

(3). fs_info.usedBytes  返回已用空间

(4). fs_info.maxPathLength  返回最大文件名字符限制(含路径和‘\0’)

(5). fs_info.maxOpenFiles  返回最多允许打开文件数量

(6).fs_info.blockSize  返回储存块大小

(7).fs_info.pageSize  返回储存页大小

1. 通过程序向闪存文件系统写入信息

#include <FS.h>  

String file_name = "/taichi-maker/notes.txt"; //被读取的文件位置和名称   void setup() {   Serial.begin(115200);   Serial.println("");      Serial.println("SPIFFS format start");   SPIFFS.format();    // 格式化SPIFFS   Serial.println("SPIFFS format finish");      if(SPIFFS.begin()){ // 启动SPIFFS     Serial.println("SPIFFS Started.");   } else {     Serial.println("SPIFFS Failed to Start.");   }  // 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息   File dataFile = SPIFFS.open(file_name, "w");// open函数可用于对SPIFFS进行操作; "w"代表此操作作为想SPIFFS写入文件信息,如果文件系统中没有文件file_name,程序会建立该文件   dataFile.println("Hello IOT World.");       // 向dataFile写入字符串信息   dataFile.close();                           // 完成文件写入后关闭文件   Serial.println("Finished Writing data to SPIFFS"); }   void loop() { }

2. 从闪存文件系统中读取文件

#include <FS.h>

String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称   void setup() {   Serial.begin(115200);   Serial.println("");      if(SPIFFS.begin()){ // 启动闪存文件系统     Serial.println("SPIFFS Started.");   } else {     Serial.println("SPIFFS Failed to Start.");   }     //确认闪存中是否有file_name文件   if (SPIFFS.exists(file_name)){     Serial.print(file_name);     Serial.println(" FOUND.");   } else {     Serial.print(file_name);     Serial.print(" NOT FOUND.");   }     //建立File对象用于从SPIFFS中读取文件   File dataFile = SPIFFS.open(file_name, "r");     //读取文件内容并且通过串口监视器输出文件信息 读取时只会读取一个,(char)是指定读取的信息char类型输出   for(int i=0; i<dataFile.size(); i++){     Serial.print((char)dataFile.read());         }     //完成文件读取后关闭文件   dataFile.close();                           }   void loop() { } 3. 删除闪存文件系统的文件 #include <FS.h> String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称   void setup() {   Serial.begin(115200);   Serial.println("");      if(SPIFFS.begin()){ // 启动闪存文件系统     Serial.println("SPIFFS Started.");   } else {     Serial.println("SPIFFS Failed to Start.");   }      //从闪存中删除file_name文件   if (SPIFFS.remove(file_name)){          Serial.print(file_name);     Serial.println(" remove sucess");        } else {     Serial.print(file_name);     Serial.println(" remove fail");   }                       }   void loop() { } 4. 向闪存文件系统中的文件添加信息   #include <FS.h> String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称   void setup() {   Serial.begin(9600);   Serial.println("");      if(SPIFFS.begin()){ // 启动闪存文件系统     Serial.println("SPIFFS Started.");   } else {     Serial.println("SPIFFS Failed to Start.");   }     //确认闪存中是否有file_name文件   if (SPIFFS.exists(file_name)){          Serial.print(file_name);     Serial.println(" FOUND.");       File dataFile = SPIFFS.open(file_name, "a");// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息     dataFile.println("This is Appended Info."); // 向dataFile添加字符串信息     dataFile.close();                           // 完成文件操作后关闭文件       Serial.println("Finished Appending data to SPIFFS");        } else {     Serial.print(file_name);     Serial.print(" NOT FOUND.");   }                          }   void loop() { }   5.读取闪存文件系统中的文件夹的文件名   #include <FS.h>   String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称   void setup() {   Serial.begin(9600);   Serial.println("");      if(SPIFFS.begin()){ // 启动闪存文件系统     Serial.println("SPIFFS Started.");   } else {     Serial.println("SPIFFS Failed to Start.");   }     //确认闪存中是否有file_name文件   if (SPIFFS.exists(file_name)){          Serial.print(file_name);     Serial.println(" FOUND.");       File dataFile = SPIFFS.open(file_name, "a");// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息     dataFile.println("This is Appended Info."); // 向dataFile添加字符串信息     dataFile.close();                           // 完成文件操作后关闭文件       Serial.println("Finished Appending data to SPIFFS");        } else {     Serial.print(file_name);     Serial.print(" NOT FOUND.");   }                          }   void loop() { }      

标签:dataFile,闪存,esp8266,文件系统,file,SPIFFS,println,Serial,name
From: https://www.cnblogs.com/fengzhihean/p/16848793.html

相关文章

  • Linux学习笔记(第八篇)磁盘与文件系统管理
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第零篇)Linux文件系统及Shell
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux文件系统组成和基本操作
    1、文件系统的组成Linux文件系统的结构:Linux单根倒树状严格区分大小写windows多根多树状(多根指的是分区)不区分大小写文件系统从根目录开始,表示为一个单独的​​'/'​......
  • Linux文件系统与日志分析
     inode结构表每个文件的属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据(metadata)元数据是存放在inode(indexnode)表中。inode表中有很多条记录组成,第一条记......
  • 虚拟文件系统 - Linux Kernel Development阅读笔记
    Linux将访问文件系统的接口统一为虚拟文件系统(VFS)接口,消除了文件系统间和硬件存储介质之间的差异。write()->sys_write()->filesystem'swritemethod->physicalme......
  • ESP8266+ST7789(240*240)TFT显示屏
    ESP8266+ST7789(240*240)TFT显示屏运行环境:❤操作系统:windows10x64❤IDE:Arduino1.8.15❤运行库1:TFT_eSPI❤运行库2:ESP8266❤开发板硬件:ESP8266-CH340,S......
  • 分布式文件系统HDFS
      ......
  • 用esp8266向外界发送网络信号
    #include<ESP8266WiFi.h>constchar*ssid="fengzhihean";constchar*password="12345678";voidsetup(){Serial.begin(115200);WiFi.softAP(ssid,password);......
  • ESP8266 WIFI 模块
    发送“AT”(AT指令集后要换行),AT+RST复位一下模块配置ESP8266的工作模式为sta,输入AT+CWMODE=1AT+CWLAP扫描附近的无线AT+CWJAP="CIMS-GUEST","a1b2c3d4e5f6"AT+CWQAP......
  • Linux操作系统系列:记一次非Lvm文件系统空间扩容
    1、关闭虚拟机,更改磁盘空间大小,如下图: 2、在系统层次发现磁盘已经识别到更改的大小,如下图: 3、但是目录空间还是原来的大小,如下图:4、安装growpart工具,yuminstallcloud-u......