Назад к списку

Флэш–память ESP32 - Хранение постоянных данных (запись и чтение)

В этой статье мы покажем вам, как сохранять и считывать значения из флэш-памяти ESP32 с помощью Arduino IDE. Данные, сохраненные во флэш-памяти, остаются неизменными даже при сбросе ESP 32 или отключении питания. В качестве примера мы покажем вам, как сохранить последнее состояние GPIO.

Посмотрите видеоурок


Флэш-память

Данные, сохраненные во флэш-памяти, остаются там даже при сбросе ESP32 или отключении питания. Флэш-память очень похожа на EEPROM. Оба являются энергонезависимыми воспоминаниями.

Сохранение данных во флэш-памяти особенно полезно для:

  • запомнить последнее состояние переменной;
  • сохранить настройки;
  • сохраните, сколько раз устройство было активировано;
  • или любой другой тип данных, которые вам необходимо сохранить навсегда.

Одним из ограничений флэш-памяти является количество раз, когда вы можете записывать в нее данные. Данные можно считывать с флэш-памяти столько раз, сколько вы хотите, но большинство устройств рассчитаны примерно на 100 000-1 000 000 операций записи.

Библиотека EEPROM

Для чтения и записи из флэш-памяти ESP32 с помощью Arduino IDE мы будем использовать библиотеку EEPROM. Использование этой библиотеки с ESP32 очень похоже на ее использование с Arduino. Итак, если вы раньше использовали Arduino EEPROM, это не сильно отличается.

С помощью ESP32 и библиотеки EEPROM вы можете использовать до 512 байт флэш-памяти. Это означает, что у вас есть 512 разных адресов, и вы можете сохранить значение от 0 до 255 в каждой адресной позиции.

Писать

Чтобы записать данные во флэш-память, вы используете функцию EEPROM.write(), которая принимает в качестве аргументов местоположение или адрес, где вы хотите сохранить данные, и значение (байтовая переменная), которое вы хотите сохранить:

EEPROM.write(address, value);

Например, чтобы записать 9 по адресу 0, вам потребуется:

EEPROM.write(0, 9);

С последующим

EEPROM.commit();

Для сохранения изменений.

Прочитай

Чтобы прочитать байт из флэш-памяти, вы используете функцию EEPROM.read(). Эта функция принимает адрес байта, который вы хотите прочитать, в качестве аргумента.

EEPROM.read(address);

Например, чтобы прочитать байт, сохраненный ранее в адресе 0, используйте:

EEPROM.read(0);

Это вернет 9, которое является значением, которое мы сохранили в адресе 0.

Поиск информации по сайту мониторинга транспорта TREKBERRY
© TREKBERRY 2017-2024, Дмитрий В.М. Все права защищены.
Копирование материала без ссылки на источник запрещено. Информация размещенная на сайте не является публичной офертой. Часть текстов написано нейросетью, может содержать не точности. На сайте может быть реклама и иметь рекламные вставки.