Показаны различия между двумя версиями страницы.
ob:o7:flash [2018/11/30 01:13] |
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); | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | Автор заметки: | ||