本项止转自github官方arduino-esp32 传在这里仅为阅读源码方便
projectuser
2019-07-05 50148ccffe21ff54262064ec9f2245900eaf18aa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
  ESP32 eeprom_class example with EEPROM library
 
  This simple example demonstrates using EEPROM library to store different data in
  ESP32 Flash memory in a multiple user-defined EEPROM partition (0x1000 or 4KB max size or less).
  
  Install 'ESP32 Partiton Manager' ONCE from https://github.com/francis94c/ESP32Partitions
  And generate different partitions with 'partition_name'
  Usage: EEPROMClass ANY_OBJECT_NAME("partition_name", size);
  
  Generated partition that would work perfectly with this example
  #Name,   Type, SubType, Offset,   Size,    Flags
  nvs,     data, nvs,     0x9000,   0x5000,
  otadata, data, ota,     0xe000,   0x2000,
  app0,    app,  ota_0,   0x10000,  0x140000,
  app1,    app,  ota_1,   0x150000, 0x140000,
  eeprom0, data, 0x99,    0x290000, 0x1000,
  eeprom1, data, 0x9a,    0x291000, 0x500,
  eeprom2, data, 0x9b,    0x292000, 0x100,
  spiffs,  data, spiffs,  0x293000, 0x16d000,
 
  Created for arduino-esp32 on 25 Dec, 2017
  by Elochukwu Ifediora (fedy0)
*/
 
#include "EEPROM.h"
 
// Instantiate eeprom objects with parameter/argument names and size same as in the partition table
EEPROMClass  NAMES("eeprom0", 0x500);
EEPROMClass  HEIGHT("eeprom1", 0x200);
EEPROMClass  AGE("eeprom2", 0x100);
 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("Testing EEPROMClass\n");
  if (!NAMES.begin(NAMES.length())) {
    Serial.println("Failed to initialise NAMES");
    Serial.println("Restarting...");
    delay(1000);
    ESP.restart();
  }
  if (!HEIGHT.begin(HEIGHT.length())) {
    Serial.println("Failed to initialise HEIGHT");
    Serial.println("Restarting...");
    delay(1000);
    ESP.restart();
  }
  if (!AGE.begin(AGE.length())) {
    Serial.println("Failed to initialise AGE");
    Serial.println("Restarting...");
    delay(1000);
    ESP.restart();
  }
 
  char* name = "Teo Swee Ann";
  double height = 5.8;
  uint32_t age = 47;
 
  // Write: Variables ---> EEPROM partitions
  NAMES.put(0, name);
  HEIGHT.put(0, height);
  AGE.put(0, age);
  Serial.print("name: ");   Serial.println(name);
  Serial.print("height: "); Serial.println(height);
  Serial.print("age: ");    Serial.println(age);
  Serial.println("------------------------------------\n");
 
  // Clear variables
  name = '\0';
  height = 0;
  age = 0;
  Serial.print("name: ");   Serial.println(name);
  Serial.print("height: "); Serial.println(height);
  Serial.print("age: ");    Serial.println(age);
  Serial.println("------------------------------------\n");
 
  // Read: Variables <--- EEPROM partitions
  NAMES.get(0, name);
  HEIGHT.get(0, height);
  AGE.get(0, age);
  Serial.print("name: ");   Serial.println(name);
  Serial.print("height: "); Serial.println(height);
  Serial.print("age: ");    Serial.println(age);
  
  Serial.println("Done!");
}
 
void loop() {
  // put your main code here, to run repeatedly:
 
}