My Project
Loading...
Searching...
No Matches
stm32f3xx_hal_flash.h
Go to the documentation of this file.
1
18/* Define to prevent recursive inclusion -------------------------------------*/
19#ifndef __STM32F3xx_HAL_FLASH_H
20#define __STM32F3xx_HAL_FLASH_H
21
22#ifdef __cplusplus
23 extern "C" {
24#endif
25
26/* Includes ------------------------------------------------------------------*/
27#include "stm32f3xx_hal_def.h"
28
40#define FLASH_TIMEOUT_VALUE (50000U) /* 50 s */
49#define IS_FLASH_TYPEPROGRAM(VALUE) (((VALUE) == FLASH_TYPEPROGRAM_HALFWORD) || \
50 ((VALUE) == FLASH_TYPEPROGRAM_WORD) || \
51 ((VALUE) == FLASH_TYPEPROGRAM_DOUBLEWORD))
52
53#define IS_FLASH_LATENCY(__LATENCY__) (((__LATENCY__) == FLASH_LATENCY_0) || \
54 ((__LATENCY__) == FLASH_LATENCY_1) || \
55 ((__LATENCY__) == FLASH_LATENCY_2))
56
61/* Exported types ------------------------------------------------------------*/
69typedef enum
70{
78
82typedef struct
83{
88 __IO uint32_t Address;
90 __IO uint64_t Data;
94 __IO uint32_t ErrorCode;
97
102/* Exported constants --------------------------------------------------------*/
111#define HAL_FLASH_ERROR_NONE 0x00U
112#define HAL_FLASH_ERROR_PROG 0x01U
113#define HAL_FLASH_ERROR_WRP 0x02U
122#define FLASH_TYPEPROGRAM_HALFWORD (0x01U)
123#define FLASH_TYPEPROGRAM_WORD (0x02U)
124#define FLASH_TYPEPROGRAM_DOUBLEWORD (0x03U)
133#define FLASH_LATENCY_0 (0x00000000U)
134#define FLASH_LATENCY_1 FLASH_ACR_LATENCY_0
135#define FLASH_LATENCY_2 FLASH_ACR_LATENCY_1
145#define FLASH_FLAG_BSY FLASH_SR_BSY
146#define FLASH_FLAG_PGERR FLASH_SR_PGERR
147#define FLASH_FLAG_WRPERR FLASH_SR_WRPERR
148#define FLASH_FLAG_EOP FLASH_SR_EOP
156#define FLASH_IT_EOP FLASH_CR_EOPIE
157#define FLASH_IT_ERR FLASH_CR_ERRIE
166/* Exported macro ------------------------------------------------------------*/
167
182#define __HAL_FLASH_HALF_CYCLE_ACCESS_ENABLE() (FLASH->ACR |= FLASH_ACR_HLFCYA)
183
188#define __HAL_FLASH_HALF_CYCLE_ACCESS_DISABLE() (FLASH->ACR &= (~FLASH_ACR_HLFCYA))
189
208#define __HAL_FLASH_SET_LATENCY(__LATENCY__) (FLASH->ACR = (FLASH->ACR&(~FLASH_ACR_LATENCY)) | (__LATENCY__))
209
210
219#define __HAL_FLASH_GET_LATENCY() (READ_BIT((FLASH->ACR), FLASH_ACR_LATENCY))
220
233#define __HAL_FLASH_PREFETCH_BUFFER_ENABLE() (FLASH->ACR |= FLASH_ACR_PRFTBE)
234
239#define __HAL_FLASH_PREFETCH_BUFFER_DISABLE() (FLASH->ACR &= (~FLASH_ACR_PRFTBE))
240
258#define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) SET_BIT((FLASH->CR), (__INTERRUPT__))
259
268#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) CLEAR_BIT((FLASH->CR), (uint32_t)(__INTERRUPT__))
269
280#define __HAL_FLASH_GET_FLAG(__FLAG__) (((FLASH->SR) & (__FLAG__)) == (__FLAG__))
281
291#define __HAL_FLASH_CLEAR_FLAG(__FLAG__) ((FLASH->SR) = (__FLAG__))
292
301/* Include FLASH HAL Extended module */
302#include "stm32f3xx_hal_flash_ex.h"
303
304/* Exported functions --------------------------------------------------------*/
312/* IO operation functions *****************************************************/
313HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
314HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
315
316/* FLASH IRQ handler function */
318/* Callbacks in non blocking modes */
319void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue);
320void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue);
321
329/* Peripheral Control functions ***********************************************/
335
343/* Peripheral State and Error functions ***************************************/
344uint32_t HAL_FLASH_GetError(void);
345
354/* Private function -------------------------------------------------*/
359
372#ifdef __cplusplus
373}
374#endif
375
376#endif /* __STM32F3xx_HAL_FLASH_H */
377
378
#define __IO
Definition: core_armv8mbl.h:196
void HAL_FLASH_IRQHandler(void)
void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
HAL_StatusTypeDef HAL_FLASH_Unlock(void)
HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
HAL_StatusTypeDef HAL_FLASH_Lock(void)
uint32_t HAL_FLASH_GetError(void)
FLASH_ProcedureTypeDef
FLASH Procedure structure definition.
Definition: stm32f3xx_hal_flash.h:70
@ FLASH_PROC_MASSERASE
Definition: stm32f3xx_hal_flash.h:73
@ FLASH_PROC_PROGRAMHALFWORD
Definition: stm32f3xx_hal_flash.h:74
@ FLASH_PROC_PAGEERASE
Definition: stm32f3xx_hal_flash.h:72
@ FLASH_PROC_PROGRAMDOUBLEWORD
Definition: stm32f3xx_hal_flash.h:76
@ FLASH_PROC_PROGRAMWORD
Definition: stm32f3xx_hal_flash.h:75
@ FLASH_PROC_NONE
Definition: stm32f3xx_hal_flash.h:71
HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition
Definition: stm32f3xx_hal_def.h:39
HAL_LockTypeDef
HAL Lock structures definition
Definition: stm32f3xx_hal_def.h:50
Header file of Flash HAL Extended module.
FLASH handle Structure definition
Definition: stm32f3xx_hal_flash.h:83
__IO uint32_t Address
Definition: stm32f3xx_hal_flash.h:88
__IO uint32_t ErrorCode
Definition: stm32f3xx_hal_flash.h:94
HAL_LockTypeDef Lock
Definition: stm32f3xx_hal_flash.h:92
__IO uint64_t Data
Definition: stm32f3xx_hal_flash.h:90
__IO FLASH_ProcedureTypeDef ProcedureOnGoing
Definition: stm32f3xx_hal_flash.h:84
__IO uint32_t DataRemaining
Definition: stm32f3xx_hal_flash.h:86