Показаны различия между двумя версиями страницы.
|
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); | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | Автор заметки: | ||