ESP8266+Flash基本操作

  • 每一個ESP8266都配有一個閃存,這個閃存很像是一個小硬盤,我們上傳的文件就被存放在這個閃存裏。這個閃存的全稱是Serial Peripheral Interface Flash File System(SPIFFS)。除了可以存放上傳的程序以外,我們還可以將網頁文件或者系統配置文件存放在ESP8266的閃存中。

首先下載程序之前要將Flash設置爲1M或者2M和3M,這樣才能正確的訪問Flash。
在這裏插入圖片描述

  • 1.通過程序向閃存文件系統寫入信息

- 通過串口將過程打印出來,我們將“Hello IOT World”這句話存入到閃存中。
在這裏插入圖片描述

#include <FS.h> //庫文件
 
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”讀取了出來

在這裏插入圖片描述


#include <FS.h>  
 
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中

在這裏插入圖片描述


#include <FS.h>  
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 <FS.h>
 
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—學習進程目錄索引

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章