嵌入式每日500(4)231104 (Flash类型定义、Flash常量定义、Flash函数)
文章目录
1.Flash类型定义(两个结构体)
typedef enum
{
FLASH_PROC_NONE = 0,
FLASH_PROC_PAGEERASE = 1,
FLASH_PROC_MASSERASE = 2,
FLASH_PROC_PROGRAMHALFWORD = 3,
FLASH_PROC_PROC_PROGRAMWORD = 4,
FLASH_PROC_PROGRAMDOUBLEWORD = 5
}FLASH_RrocedureTypeDef;
typedef struct
{
_IO FLASH_ProcessTypeDef ProcedureOnGoing;
_IO uint32_t DataRemaining;
_TO uint32_t Address;
_IO uint64_t Data;
HAL_LockTypeDef Lock;
_IO uint32_t ErrorCode;
}FLASH_ProcessTypeDef;
2.Flash常量定义(3种)

3.Flash函数(31个,FLASH分为两个区,一个是普通的存储空间,一个是选项字节OB,函数名里带OB的就是对选项字节空间的操作)
| 序号 | 函数名 | 功能描述 |
|---|
| 1 | FLASH_PageErase | 删除指定的Flash存储页 |
| 2 | FLASH_Program_HalfWord | 在指定的地址编程(写入)半字 |
| 3 | FLASH_SetErrorCode | 置位指定的Flash错误标志位 |
| 4 | FLASH_WaitForLastOperation | 等待一个Flash操作结束 |
| 5 | HAL_FLASH_EndofOperationCallback | Flash操作结束中断回调函数 |
| 6 | HAL_FLASH_IRQHandler | 处理中断请求函数 |
| 7 | HAL_FALSH_OperationErrorCallback | Flash操作错误中断回调函数 |
| 8 | HAL_FLASH_Program | 在指定的地址以半字、字或双字编程 |
| 9 | HAL_FLASH_Program_IT | 在指定的地址以半字、字或双字编程,并使能中断 |
| 10 | HAL_FLASH_Lock | 锁定Flash控制寄存器访问 |
| 11 | HAL_FLASH_OB_Launch | 启动选项字节的装载 |
| 12 | HAL_FLASH_OB_Lock | 解锁Flash控制寄存器访问 |
| 13 | HAL_FLASH_OB_Unlock | 解锁Flash控制寄存器访问 |
| 14 | HAL_FLASH_Unlock | 解锁Flash控制寄存器访问 |
| 15 | HAL_FLASH_GetError | 获取特定的Flash错误标志位 |
| 16 | FLASH_MaseErase | 全部擦除Flash存储器组 |
| 17 | FLASH_OB_DisableWRP | 禁用目标页面写保护 |
| 18 | FLASH_OB_EnableWRP | 对目标页面使能写保护 |
| 19 | FLASH_OB_GetRDP | 返回Flash写保护级别 |
| 20 | FLASH_OB_GetUser | 返回Flash用户选项字节的值 |
| 21 | FLASH_OB_GetWRP | 返回Flash写保护选项字节的值 |
| 22 | FLASH_OB_ProgramData | 对指定的选项字节数据地址使用半字节编程 |
| 23 | FLASH_OB_RDP_LevelConfig | 设置读保护级别 |
| 24 | FLASH_OB_UserConfig | 编程Flash用户选项字节 |
| 25 | FLASH_PageErase | 删除指定的Flash存储器页面 |
| 26 | HAL_FLASHEx_Erase | 执行块擦除或擦除指定的Flash存储器页面 |
| 27 | HAL_FLASHEx_Erase_IT | 执行块擦除或擦除指定的Flash存储器页面并使能中断 |
| 28 | HAL_FLASHEx_OBErase | 删除Flash选项字节 |
| 29 | HAL_FLASHEx_OBGetConfig | 获取选项字节配置 |
| 30 | HAL_FLASHEx_OBGetUserData | 获取选项字节用户数据 |
| 31 | HAL_FLAHEx_OBProgram | 编程选项字节 |






























