56 #define LEVELS_NUMBER 5
62 #define IS_VALID_FREQ(SYS_FREQ) ((SYS_FREQ) <= 100000000)
90 const uint32_t Levels[
LEVELS_NUMBER] = {15000000, 30000000, 48000000, 60000000, 80000000};
94 if (Levels[Index] < SysClkFreq)
104 NT_USERFLASH->T_ACC = Tacc;
105 NT_USERFLASH->T_PROG = (uint32_t)(SysClkFreq * 0.00003F);
106 NT_USERFLASH->T_ERASE = (uint32_t)(SysClkFreq * 0.03F);
107 NT_USERFLASH->T_ME = (uint32_t)(SysClkFreq * 0.03F);
122 NT_USERFLASH->FCIC = USERFLASH_FCIC_CLR_OPCMLT_Msk | USERFLASH_FCIC_CLR_OPERROR_Msk;
127 Status = (
USERFLASH_Status_TypeDef)(NT_USERFLASH->FCIS & (USERFLASH_FCIS_OP_CMLT_Msk | USERFLASH_FCIS_OP_ERROR_Msk));
144 NT_USERFLASH->FCIC = USERFLASH_FCIC_CLR_OPCMLT_Msk | USERFLASH_FCIC_CLR_OPERROR_Msk;
145 NT_USERFLASH->FMA = Address;
150 Status = (
USERFLASH_Status_TypeDef)(NT_USERFLASH->FCIS & (USERFLASH_FCIS_OP_CMLT_Msk | USERFLASH_FCIS_OP_ERROR_Msk));
158 return NT_USERFLASH->FMD;
176 NT_USERFLASH->FCIC = USERFLASH_FCIC_CLR_OPCMLT_Msk | USERFLASH_FCIC_CLR_OPERROR_Msk;
177 NT_USERFLASH->FMA = Address;
178 NT_USERFLASH->FMD = Data;
183 Status = (
USERFLASH_Status_TypeDef)(NT_USERFLASH->FCIS & (USERFLASH_FCIS_OP_CMLT_Msk | USERFLASH_FCIS_OP_ERROR_Msk));
204 NT_USERFLASH->FCIC = USERFLASH_FCIC_CLR_OPCMLT_Msk | USERFLASH_FCIC_CLR_OPERROR_Msk;
210 Status = (
USERFLASH_Status_TypeDef)(NT_USERFLASH->FCIS & (USERFLASH_FCIS_OP_CMLT_Msk | USERFLASH_FCIS_OP_ERROR_Msk));
227 NT_USERFLASH->FCIC = USERFLASH_FCIC_CLR_OPCMLT_Msk | USERFLASH_FCIC_CLR_OPERROR_Msk;
228 NT_USERFLASH->FMA = Address;
233 Status = (
USERFLASH_Status_TypeDef)(NT_USERFLASH->FCIS & (USERFLASH_FCIS_OP_CMLT_Msk | USERFLASH_FCIS_OP_ERROR_Msk));
241 return NT_USERFLASH->FMD;
259 NT_USERFLASH->FCIC = USERFLASH_FCIC_CLR_OPCMLT_Msk | USERFLASH_FCIC_CLR_OPERROR_Msk;
260 NT_USERFLASH->FMA = Address;
261 NT_USERFLASH->FMD = Data;
266 Status = (
USERFLASH_Status_TypeDef)(NT_USERFLASH->FCIS & (USERFLASH_FCIS_OP_CMLT_Msk | USERFLASH_FCIS_OP_ERROR_Msk));
287 NT_USERFLASH->FCIC = USERFLASH_FCIC_CLR_OPCMLT_Msk | USERFLASH_FCIC_CLR_OPERROR_Msk;
293 Status = (
USERFLASH_Status_TypeDef)(NT_USERFLASH->FCIS & (USERFLASH_FCIS_OP_CMLT_Msk | USERFLASH_FCIS_OP_ERROR_Msk));
310 NT_USERFLASH->FCIM_bit.MASK_OPCMLT = (uint32_t)State;
#define LEVELS_NUMBER
Количество уровней системной частоты (Таблица 7.3).
USERFLASH_Status_TypeDef USERFLASH_Write(uint32_t Address, uint32_t Data)
Запись байта в основную область пользовательской флеш по указанному адресу.
uint32_t USERFLASH_Read(uint32_t Address)
Чтение байта из основной области пользовательской флеш.
#define IS_USERFLASH_INFO_PAGE_NUM(PAGE_NUM)
Макрос проверки номера страницы информационной области пользовательской флеш на попадание в допустимы...
void USERFLASH_ITCmd(FunctionalState State)
Включение прерывания по завершению чтении/записи/стирания.
Файл содержит все прототипы функций для пользовательской флеш.
#define USERFLASH_OPERATION_TIMEOUT
Время ожидания выполнения операции с флеш.
USERFLASH_Status_TypeDef USERFLASH_Info_Write(uint32_t Address, uint32_t Data)
Запись байта в информационную область пользовательской флеш по указанному адресу. ...
void USERFLASH_Init(uint32_t SysClkFreq)
Инициализирует тайминги доступа для контроллера пользовательской флеш.
USERFLASH_Status_TypeDef USERFLASH_Info_PageErase(uint32_t PageNum)
Стирание указнной страницы информационной области пользовательской флеш.
USERFLASH_Status_TypeDef
Статус работы контроллера пользовательской флеш-памяти.
uint32_t USERFLASH_Info_Read(uint32_t Address)
Чтение байта из информационной области пользовательской флеш.
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
#define IS_FUNCTIONAL_STATE(STATE)
Макрос проверки аргументов типа FunctionalState.
#define IS_VALID_FREQ(SYS_FREQ)
Макрос проверки допустимости значения системной частоты.
#define USERFLASH_PAGE_SIZE_BYTES
#define IS_USERFLASH_PAGE_NUM(PAGE_NUM)
Макрос проверки номера страницы основной области пользовательской флеш на попадание в допустимый диап...
USERFLASH_Status_TypeDef USERFLASH_PageErase(uint32_t PageNum)
Стирание указнной страницы основной области пользовательской флеш.
USERFLASH_Status_TypeDef USERFLASH_FullErase(void)
Полная очистка основной области пользовательской флеш.
#define USERFLASH_MAGIC_KEY
Ключ для проведения операций с контроллером пользовательской флеш.