• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос esp8266 и eeprom

(_Dan_)

New member
Здравствуйте. Интересует вопрос: есть ли а esp8266 энергонезависимая память?! Если есть, то как произвести запись значения?! Пробовал следующий код:
Код:
#include <EEPROM.h>
int a=0;
int b=123;
int f;
void setup() {
  Serial.begin(115200);
  EEPROM.put(0,b);
  delay(1000);
  EEPROM.get(0,a);
  Serial.println();
}
void loop() {
  Serial.println(a);
  delay(2000);
  Serial.println(b);
  delay(2000);
}
Просто проверял. Должно было записаться число 123 в регистр с адресом "ноль", потом от туда считаться и записаться в переменную "а". Но что-то не вышло.
 

DrJarold

Member
Как пример:
Код:
void SavePrefereseToEPPROM() {
    if ((bool) EEPROM.read(NTP_ADDR) != NTPState)
        EEPROM.write(NTPState, NTP_ADDR);
    if ((bool) EEPROM.read(AUTO_CONNCT_ADDR) != WIFI_ENABLE)
        EEPROM.write(WIFI_ENABLE, AUTO_CONNCT_ADDR);
    if ((bool) EEPROM.read(MAX_TIMERS_ADDR) != MAX_TIMERS)
        EEPROM.write(MAX_TIMERS, MAX_TIMERS_ADDR);
    if ((bool) EEPROM.read(MAX_TEMP_SENSOR_ADDR) != MAX_TEMP_SENSOR)
        EEPROM.write(MAX_TEMP_SENSOR, MAX_TEMP_SENSOR_ADDR);
}
void LoadPreferenceFromEPPROM() {
    NTPState = (bool) EEPROM.read(NTP_ADDR);
    WIFI_ENABLE = (bool) EEPROM.read(AUTO_CONNCT_ADDR);
    MAX_TIMERS = (bool) EEPROM.read(MAX_TIMERS_ADDR);
    MAX_TEMP_SENSOR = (bool) EEPROM.read(MAX_TEMP_SENSOR_ADDR);
}
 

Юрий Ботов

Moderator
Команда форума
Учтите что на самом деле EEPROM у esp это вовсе не EEPROM а кусочек SPI флэша с которого esp грузится.
 
Последнее редактирование:

tretyakov_sa

Moderator
Команда форума
Здравствуйте. Интересует вопрос: есть ли а esp8266 энергонезависимая память?! Если есть, то как произвести запись значения?! Пробовал следующий код:
Код:
#include <EEPROM.h>
int a=0;
int b=123;
int f;
void setup() {
  Serial.begin(115200);
  EEPROM.put(0,b);
  delay(1000);
  EEPROM.get(0,a);
  Serial.println();
}
void loop() {
  Serial.println(a);
  delay(2000);
  Serial.println(b);
  delay(2000);
}
Просто проверял. Должно было записаться число 123 в регистр с адресом "ноль", потом от туда считаться и записаться в переменную "а". Но что-то не вышло.
Для записи нужно либо выполнить EEPROM.commit() или EEPROM.end()
 
Сверху Снизу