I have defined a struct for my data but the first element in the struct is getting duplicated.
struct Test_Writing_EEPROM
{
char ItemNum01[32];
char ItemNum02[32];
char ItemNum03[32];
} StoredValues;
The first time I run the output of the first element is three (3) times longer than the last element.
What did we find currently stored in eeprom.
ItemNum01: 1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX23XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX45XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX6
SizeOF : 32
ItemNum02: 3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX45XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX6
SizeOF : 32
ItemNum03: 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX6
SizeOF : 32
BAD : We did not match ItemNum01.
What did we define to send to eeprom.
ItemNum01: 1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX23XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX45XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX6
SizeOF : 32
ItemNum02: 3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX45XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX6
SizeOF : 32
ItemNum03: 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX6
SizeOF : 32
The second time I restart and re-read the data, it looks the same.
#include <EEPROM.h>
int eepromAddress = 0;
struct Test_Writing_EEPROM
{
char ItemNum01[32];
char ItemNum02[32];
char ItemNum03[32];
} StoredValues;
void setup() {
Serial.begin(115200);
EEPROM.begin(512);
EEPROM.get(eepromAddress, StoredValues);
EEPROM.end();
Serial.println("");
Serial.println("What did we find currently stored in eeprom.");
Serial.println("");
Serial.print("ItemNum01: ");
Serial.print(StoredValues.ItemNum01);
Serial.println("");
Serial.print("SizeOF : ");
Serial.print(sizeof(StoredValues.ItemNum01));
Serial.println("");
Serial.print("ItemNum02: ");
Serial.print(StoredValues.ItemNum02);
Serial.println("");
Serial.print("SizeOF : ");
Serial.print(sizeof(StoredValues.ItemNum02));
Serial.println("");
Serial.print("ItemNum03: ");
Serial.print(StoredValues.ItemNum03);
Serial.println("");
Serial.print("SizeOF : ");
Serial.print(sizeof(StoredValues.ItemNum03));
if (StoredValues.ItemNum01 == "1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2" )
{
Serial.println("");
Serial.println("");
Serial.println("GOOD: We matched ItemNum01");
} else {
Serial.println("");
Serial.println("");
Serial.println("BAD : We did not match ItemNum01.");
EEPROM.begin(512);
strncpy(StoredValues.ItemNum01, "1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2", 32);
strncpy(StoredValues.ItemNum02, "3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX4", 32);
strncpy(StoredValues.ItemNum03, "5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX6", 32);
Serial.println();
Serial.println("What did we define to send to eeprom.");
Serial.println();
Serial.print("ItemNum01: ");
Serial.print(StoredValues.ItemNum01);
Serial.println();
Serial.print("SizeOF : ");
Serial.print(sizeof(StoredValues.ItemNum01));
Serial.println();
Serial.print("ItemNum02: ");
Serial.print(StoredValues.ItemNum02);
Serial.println();
Serial.print("SizeOF : ");
Serial.print(sizeof(StoredValues.ItemNum02));
Serial.println();
Serial.print("ItemNum03: ");
Serial.print(StoredValues.ItemNum03);
Serial.println();
Serial.print("SizeOF : ");
Serial.print(sizeof(StoredValues.ItemNum03));
EEPROM.put(eepromAddress, StoredValues);
EEPROM.end();
}
}
void loop() {
delay(5000);
}