EEPROM
- Войдите на сайт для отправки комментариев
Сб, 06/04/2019 - 18:50
Добрый вечер.
Я пытаюсь сохранить 2 переменные i и j в EEPROM, я могу изменить эти значения кнопками, но после отключения питания оба значения не сохраняются, и на ЖК-дисплее у меня i = 0 и j = 0.
Пожалуйста, помогите мне решить проблему.
#include <LiquidCrystal.h>
#include <EEPROM.h>
LiquidCrystal lcd(PA0, PA1, PA2, PA3, PA4, PA5);
int i;
int ovfi;
int j;
int ovfj;
void setup()
{
pinMode(PB6, INPUT_PULLDOWN);
pinMode(PB9, INPUT_PULLDOWN);
pinMode(PB5, INPUT_PULLDOWN);
pinMode(PB8, INPUT_PULLDOWN);
lcd.begin(16, 2);
EEPROM.read(256);
EEPROM.read(0);
}
void loop()
{
ovfi = 3000 - i;
if (digitalRead(PB8) == HIGH)
{
if (i < 3000)
{
i++;
}
}
if (digitalRead(PB5) == HIGH)
{
if (i > 0)
{
i--;
}
}
EEPROM.write(256, i);
//////////////////////////////////
ovfi = 3000 - j;
if (digitalRead(PB9) == HIGH)
{
if (i < 3000)
{
j++;
}
}
if (digitalRead(PB6) == HIGH)
{
if (i > 0)
{
j--;
}
}
EEPROM.write(0, j);
/////////////////////////////////
lcd.setCursor(0, 0);
lcd.print(EEPROM.read(256));
lcd.setCursor(0, 1);
lcd.print(EEPROM.read(0));
}
сегодня похоже день епрома
строки 17 и 18, вы куда читаете из EEPROM?
Это должны быть адреса EEPROM, STM32f103
Это должны быть адреса EEPROM, STM32f103
Повторю вопрос: КУДА вы читаете из EEPROM в строках 17 и 18? Правильный ответ - в ни-ку-да, вместо переменных i и j. Поняли, в чём ошибка?
Я читаю их на LCD
так ... спокойнее )))
еще раз: что вы делаете в строках 17 и 18?
Я читаю сохраненные значения после отключения питания и подключenyu его снова
так, все понятно
замените 17,18 на
и идите с богом.
код написан просто безграмотно и объяснять кажлый ляп, просто нет желания.
Я сделал так и i сохраняется
Я сделал так и только i сохраняется
Я читаю их на LCD
А радиостанция - на бронепоезде.
STM32 не имеет энергонезависимой EEPROM памяти. EEPROM есть только у STM32L.
http://www.avislab.com/blog/stm32-flash_ru/
STM32 не имеет энергонезависимой EEPROM памяти. EEPROM есть только у STM32L.
http://www.avislab.com/blog/stm32-flash_ru/
Пух: https://github.com/rogerclarkmelbourne/Arduino_STM32/tree/master/STM32F1/libraries/EEPROM
Сделана эмуляция, и как EEPROM используется флеш. Так что к рамках Arduino IDE класс EEPROM под STM32 работает, и предоставляет наружу всем известный стандартный функционал. Ну - почти стандартный, сигнатуры некоторых методов чуть отличаются, но всё-же - узнаваемы вполне.
//EEPROM.write(256, j); EEPROM.write(0, j);и всё работает
А как быстро этот код, дырку во флэше сделает?
После 100 000 записей в один адрес, потом надо его менять , вот как, пока я не знаю.
А в постоянно крутящемся лупе, как быстро закончатся 100тысч?
потом надо его менять , вот как, пока я не знаю.
Чего там знать? Открываешь чип, находишь там епром, выбрасываешь, и ставишь новый.
потом надо его менять , вот как, пока я не знаю.
Чего там знать? Открываешь чип, находишь там епром, выбрасываешь, и ставишь новый.
не, ну новый дорого, я бушный беру у борыг в треть цены, а вообще я слышал ща умельцы научились востанавливать его и не дорого. ))
не, ну новый дорого, я бушный беру у борыг в треть цены
Ворота у нас богатый!