Официальный сайт компании Arduino по адресу arduino.cc
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 работает, и предоставляет наружу всем известный стандартный функционал. Ну - почти стандартный, сигнатуры некоторых методов чуть отличаются, но всё-же - узнаваемы вполне.
и всё работает
А как быстро этот код, дырку во флэше сделает?
После 100 000 записей в один адрес, потом надо его менять , вот как, пока я не знаю.
А в постоянно крутящемся лупе, как быстро закончатся 100тысч?
потом надо его менять , вот как, пока я не знаю.
Чего там знать? Открываешь чип, находишь там епром, выбрасываешь, и ставишь новый.
потом надо его менять , вот как, пока я не знаю.
Чего там знать? Открываешь чип, находишь там епром, выбрасываешь, и ставишь новый.
не, ну новый дорого, я бушный беру у борыг в треть цены, а вообще я слышал ща умельцы научились востанавливать его и не дорого. ))
не, ну новый дорого, я бушный беру у борыг в треть цены
Ворота у нас богатый!