ESP8266+Flash基本操作

索引

    • 1.通过程序向闪存文件系统写入信息
    • 2. 通过程序从闪存文件系统读取信息
    • 3. 通过程序向闪存文件系统文件添加信息
    • 4.从闪存文件系统中删除文件

  • 每一个ESP8266都配有一个闪存,这个闪存很像是一个小硬盘,我们上传的文件就被存放在这个闪存里。这个闪存的全称是Serial Peripheral Interface Flash File System(SPIFFS)。除了可以存放上传的程序以外,我们还可以将网页文件或者系统配置文件存放在ESP8266的闪存中。

首先下载程序之前要将Flash设置为1M或者2M和3M,这样才能正确的访问Flash。
ESP8266+Flash基本操作_第1张图片

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

- 通过串口将过程打印出来,我们将“Hello IOT World”这句话存入到闪存中。
ESP8266+Flash基本操作_第2张图片

#include  //库文件
 
String file_name = "/maker/notes.txt"; //被读取的文件位置和名称
 
void setup() {
     
  Serial.begin(9600);
  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 dataFile = SPIFFS.open(file_name, "w");// 建立File对象用于向   SPIFFS中的file对象(即/notes.txt)写入信息
  dataFile.println("Hello IOT World.");       // 向dataFile写入字符串信息
  dataFile.close();                           // 完成文件写入后关闭文件
  Serial.println("Finished Writing data ");
}
 
void loop() {
     
}

2. 通过程序从闪存文件系统读取信息

  • 当我们在Flash中存储完数据之后,可以再通过程序把信息读取出来。我们通过程序将存入的“Hello IOT World”读取了出来

ESP8266+Flash基本操作_第3张图片


#include   
 
String file_name = "/maker/notes.txt"; //被读取的文件位置和名称
 
void setup() {
     
  Serial.begin(9600);
  Serial.println("");
  
  
  if(SPIFFS.begin()){
      // 启动SPIFFS
    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 dataFile = SPIFFS.open(file_name, "r"); 
  for(int i=0;i<dataFile.size();i++)
  {
     
    Serial.print((char)data
    Serial.print((char)dataFile.read());  
  }
  dataFile.close(); 
}
 
void loop() {
     
}

3. 通过程序向闪存文件系统文件添加信息

  • 添加信息是不会删除文件内原有信息,而是在原有信息后面添加新的信息。这与但写入操作是有所区别的。写入操作是将文件内容完全清除,重新写入新信息。在这里串口输出多个“My Love The world!"就是因为复位了好几次程序,每复位一次程序执行一遍就好把这句话写入Flash中

ESP8266+Flash基本操作_第4张图片


#include   
String file_name = "/maker/notes.txt"; //被读取的文件位置和名称
void setup() {
     
  Serial.begin(9600);
  Serial.println("");
    
  if(SPIFFS.begin()){
      // 启动SPIFFS
    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);
   
  }

   // 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
  File dataFile = SPIFFS.open(file_name, "a"); 
  dataFile.println("My Love The world!"); // 向dataFile添加字符串信息
  dataFile.close(); // 完成文件操作后关闭文件 
  Serial.println("Writing sucess!");

  File dateFile = SPIFFS.open(file_name, "r");  //建立File对象用于从SPIFFS中读取文件
  //读取文件内容并且通过串口监视器输出文件信息
  for(int i=0; i<dateFile.size(); i++){
     
    Serial.print((char)dateFile.read());       
  }
  dateFile.close(); 
}
 
void loop() {
     
}

4.从闪存文件系统中删除文件

  • 通过该代码,可以将之前写入Flash中的文件删除。
#include 
 
String file_name = "/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.remove(file_name)){
     
    
    Serial.print(file_name);
    Serial.println(" remove sucess");
    
  } else {
     
    Serial.print(file_name);
    Serial.println(" remove fail");
  }                       
}
void loop() {
     
}

更多内容
ESP8266—学习进程目录索引

你可能感兴趣的:(ESP8266,物联网,经验分享,程序人生,其他,http)