Показаны различия между двумя версиями страницы.
ob:o7:flash [2017/07/29 10:33] иван_денисов |
ob:o7:flash [2020/10/29 07:08] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Сохранение данных в FLASH память микроконтроллера ====== | ||
- | |||
- | Часто возникает необходимость сохранить некоторые параметры работы программы в энергонезависимую память, | ||
- | |||
- | Рассмотрим сохранение данных на примере трех чисел n1, n2, n3 с помощью модуля **MicroSTM32F10xFlash**. | ||
- | |||
- | Сначала надо определить номер страницы памяти, | ||
- | < | ||
- | |||
- | CONST | ||
- | page127 = Flash.Page0 + 127 * 1024; | ||
- | |||
- | </ | ||
- | Если у вашего МК 64кб ROM памяти, | ||
- | |||
- | Запись данных n1, n2, n3 осуществляется следующим образом: | ||
- | < | ||
- | Flash.UnLock; | ||
- | Flash.ErasePage(page127, | ||
- | IF res = Flash.complete THEN | ||
- | Flash.Write(page127, | ||
- | Flash.Write(page127 + 4, n2, res); | ||
- | Flash.Write(page127 + 8, n3, res); | ||
- | END; | ||
- | Flash.Lock | ||
- | </ | ||
- | |||
- | Считывание сохраненных данных не требует использование модуля Flash. | ||
- | |||
- | < | ||
- | SYSTEM.GET(page127, | ||
- | SYSTEM.GET(page127 + 4, n2); | ||
- | SYSTEM.GET(page127 + 8, n3); | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ---- | ||
- | |||
- | Автор заметки: | ||