Ви не увійшли.
Сторінки 1

Добрый день!
Хотел поиграться с EEPROM но, возникла проблема с чтением с eeprom. 
#include <EEPROM.h>
//#include "ESP8266WiFi.h"
void setup() {
  String ssid = "my_ssid";
  String pass = "my_pass";
  Serial.begin(9600);
  EEPROM.begin(512);
  delay(100);
  //WiFi.mode(WIFI_STA);
  //WiFi.disconnect();
  delay(100);
  Serial.println("EEPROM START");
  EEPROM.write(0, ssid.length());
  delay(40);
  int from = 1;
  for (int i; i < ssid.length(); i++) {
    EEPROM.write(from + i, ssid[i]);
    delay(40);
  }
  from = ssid.length() + 1;
  EEPROM.write(from, pass.length());
  for (int i; i < pass.length(); i++) {
    EEPROM.write(from + i, pass[i]);
  }
  if (EEPROM.commit()) {
    Serial.println("Succesfuly eeprom updated");
  }
  delay(500);
  Serial.println("Start reading");
    String data;
  for (byte i; i < pass.length()+ssid.length()+2; i++) {
    data += (char)EEPROM.read(i);
  }
  Serial.println(data);
  Serial.println(data.length());
  /*
    String data;
    for (byte i; i < 8; i++) {
    data += (char)EEPROM.read(i);
    }
    Serial.println(data);
    Serial.println(data.length());
  */
  Serial.println("end eeprom");
  //EEPROM.end();
}
void loop() {
}На что получаю ответ в ком порт:
16:09:13.706 -> ⸮txW⸮X6d⸮$⸮p⸮d⸮EEPROM START
16:09:14.081 -> Succesfuly eeprom updated
16:09:14.565 -> Start reading
16:09:14.565 -> 
16:09:14.565 -> 0
16:09:14.565 -> end eeprom
Скажу что первый раз работаю с eeprom. Так что не знаю всех подводных камней. Заранее спасибо
Неактивний

Мне кажется вы не только с епром работаете первый раз. Начальное значение i с потолка берется?

Мне кажется вы не только с епром работаете первый раз. Начальное значение i с потолка берется?
Где именно ?)
Неактивний

Везде

Если вы про циклы то да, переменная "i" во всех циклах берется за ноль(я проверял)
Неактивний

Незнаю что и как вы там проверяли. Вот результат при явном указании начального значения i=0
17:57:17.790 -> ⸮HpI<⸮Xll⸮l 8@⸮EEPROM START
17:57:18.466 -> Succesfuly eeprom updated
17:57:18.967 -> Start reading
17:57:18.967 -> my_ssidmy_passr
17:57:19.014 -> 16
17:57:19.014 -> end eeprom

Спасибо!!!!! Огромное спасибо. Теперь работает правильно!
Неактивний

(если кому-то поможет то вот конечный код, чуть изменен)
#include <EEPROM.h>
//#include "ESP8266WiFi.h"
void setup() {
  String ssid = "your_ssid";
  String pass = "your_pass";
  Serial.begin(9600);
  EEPROM.begin(512);
  delay(100);
  int ssid_len = ssid.length() + 1;
  int pass_len = pass.length() + 1;
  char ssid_array[ssid_len];
  char pass_array[pass_len];
  ssid.toCharArray(ssid_array, ssid_len);
  pass.toCharArray(pass_array, pass_len);
  Serial.println();
  Serial.println("SSID write....");
  for (int i=0; i < sizeof(ssid_array); i++) {
    Serial.println((char)ssid_array[i]);
    delay(100);
    EEPROM.write(i, ssid_array[i]);
    delay(100);
  }
  Serial.println("SSID writed!");
  if (EEPROM.commit()) {
    delay(500);
    Serial.println("EEPROM commited!");
  }
  delay(100);
  for (byte i=0; i < 9; i++) {
    Serial.print((char) EEPROM.read(i));
  }
  Serial.println("End");
}
void loop() {
}Неактивний
Сторінки 1