Vaikka EEPROM.read
ja EEPROM.write
ovat kelvollisia menetelmiä, se on kuin lattian pyyhkiminen hammasharjalla. Käytä sen sijaan EEPROM.put
ja EEPROM.get
.
Esimerkki:
#include <EEPROM.h>void setup () {Serial.begin (9600); uint addr = 0; // väärennetty data struct {uint val = 0; char str [20] = ""; } tiedot; // sitoudu 512 tavua ESP8266-salamaa ("EEPROM" -emulointia varten) // tämä vaihe tosiasiallisesti lataa salaman sisällön (512 tavua) // 512-tavun matriisin välimuistiin RAM-muistissa EEPROM.begin (512); // luetaan tavuja (eli EEPROM-tiedoston "dataof"), // todellisuudessa lukee tavut-taulukon välimuistista // valetaan tavut rakenteeseen nimeltä data EEPROM.get (addr, data); Serial.println ("Vanhat arvot ovat:" + String (data.val) + "," + String (data.str)); // viulata EEPROM-tiedoista "luettujen" tietojen kanssa.val + = 5; if (strcmp (data.str, "hei") == 0) strncpy (data.str, "jerry", 20); else strncpy (data.str, "hei", 20); // korvaa tavutaulukon välimuistin arvot muokatulla tiedolla // ei muutoksia suoritettu flashiin, kaikki paikallisessa tavutaulukkovälimuistissa EEPROM.put (addr, data); // itse kirjoittaa tavutaulukon välimuistin sisältö // laitteistosalamalle. flash-kirjoitus tapahtuu vain ja vain, jos tavu-taulukon välimuistissa on muutettu yhtä tai useampaa tavua //, mutta jos niin, KAIKKI 512 tavua // kirjoitetaan flash-muistiin EEPROM.commit (); // tyhjennä 'data' -rakenteen data.val = 0; strncpy (data.str, "", 20); // lataa EEPROM-tiedot, katso muutos // OOPS, ei tosiasiallisesti lukee flash-tiedostoa, mutta lukee tavu-matriisin välimuistin (RAM-muistissa), // virtasykli ESP8266, jotta näet todella flash- / "EEPROM" -päivityksen EEPROM.get (addr , tiedot); Serial.println ("Uudet arvot ovat:" + String (data.val) + "," + String (data.str));} void loop () {delay (1000);}
PÄIVITTELY : Jos haluat ymmärtää, kuinka "EEPROM" jäljitellään ESP8266: ssa, kannattaa ehkä viitata osoitteeseen https://github.com/esp8266/Arduino/tree/ master / libraries / EEPROM, erityisesti EEPROM.h
.
Myöskään EEPROM.end
ei ole tarpeen, se vain tyhjentää flash-muistin / EEPROMin RAM-muistista paikallinen tavu-matriisivälimuisti Se palvelee muita toimintoja.