Error al guardar en la memoria EEPROM esp8266

Hola a todos buenas noches, estoy realizando un código en mi dispositivo esp8266. Se requiere guardar una serie de datos que luego serán procesados para su debido uso pero me surge un comportamiento extraño. ya que cuando lee los datos desde la memoria EEPROM guarda ¨basura¨ o espacios en blanco y no entiendo el porque! si alguien pudiese ayudarme por favor!

Les adjunto una parte del código

``

struct ACCIONES_T {
  String ACC;
  String STATUS;
};

#define MAX_ACCIONES 10
#define MAX_LUGARES 10
//STRUCT
struct LUGARES_T {
  String ID;
  String DMAC;
  String ICON;
  String redirect;
  struct ACCIONES_T accion[MAX_ACCIONES];
} lugares[MAX_LUGARES];

``
luego guardo normalmente los datos y los guardo

``

  EEPROM.put(POS_LUGARES_STRUCT, lugares);
  EEPROM.put(POS_CONTEO, contador);

  if (EEPROM.commit()) {
    Serial.println("ALMACENAMIENTO EXITOSO");
    Impresion();
    EE_Check = 1;
  }

``
para leerlos luego entonces uso esto

``

  EEPROM.get(POS_EE_CHECK, EE_Check);

  if (EE_Check == 1) {
    Serial.println("ya fue checkeado");
    EEPROM.get(POS_LUGARES_STRUCT, lugares);
    EEPROM.get(POS_CONTEO, contador);
    if (EEPROM.commit()) {
      Serial.println("EEPROM successfully committed");
      Impresion();
    } else {
      Serial.println("ERROR! EEPROM commit failed");
    }
  }

Sorry the translation is not that clear but you have to commit the data before exiting or it will be lost. Why? The write command does not write directly to EEPROM, there is none. It just prepares an array of bytes which must then be saved in the memory area using the commit() command. This is then written to I believe Flash memory.
when finished add this: EEPROM.commit() hopefully that solves your problem.

Lo siento, la traducción no es tan clara, pero debe confirmar los datos antes de salir o se perderán. ¿Por qué? El comando de escritura no escribe directamente en EEPROM, no hay ninguno. Simplemente prepara una matriz de bytes que luego debe guardarse en el área de memoria usando el comando commit (). Esto luego se escribe en la memoria Flash, creo.
cuando termine agregue esto: EEPROM.commit () con suerte eso resuelve su problema.

Hola! muchas gracias por tu respuesta. Agregue el comando EEPROM.commit () ; y no tuve suerte, sigue el mismo error. También cambie las variables de la estructura de String a Char pero tampoco funciona, cuando se guarda en la EEPROM, imprime la información correctamente, el problema es al reiniciar el dispositivo y querer obtener de nuevo la información, se muestra vacío.

Moderador:
Ahora estas en el foro Arduino en Español.
Esto ocurre porque posteaste en algun sitio del foro en Inglés y claramente recibiste una respuesta en inglés pero alguien te denunció por poste indebido.
Lee las normas del foro. Usa el idioma que corresponde al foro.
No repitas esta falta por favor

Respecto de tu problema, yo en lo personal no respondo cuando se plantea una situación en forma aislada. Postea todo el código para que podamos evaluar debidamente.
Yo por lo que veo no se como modificas la direccion de la EEPROM con dada nuevo indice de tu array lugares
Asi que como no quiero aventurar, espero a que postees todo el código.