stm32 hal库 flash写函数
时间: 2023-09-01 18:10:54 浏览: 134
STM32 HAL库 Flash读写函数
在使用 STM32 HAL 库进行 Flash 写入操作时,可以使用以下函数进行操作:
```c
HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
```
其中,TypeProgram 参数指定写入的数据类型,可以为:
- `FLASH_TYPEPROGRAM_BYTE`:字节类型;
- `FLASH_TYPEPROGRAM_HALFWORD`:半字类型;
- `FLASH_TYPEPROGRAM_WORD`:字类型;
- `FLASH_TYPEPROGRAM_DOUBLEWORD`:双字类型;
Address 参数指定写入数据的地址,Data 参数指定写入的数据。需要注意的是,写入地址必须是 4 字节对齐,数据类型的长度必须与地址对齐。
以下是使用 HAL 库进行 Flash 写入的示例代码:
```c
#define FLASH_USER_START_ADDR ADDR_FLASH_PAGE_60 // 用户数据存储地址
/* 在指定的地址写入数据 */
void WriteFlash(uint32_t addr, uint32_t data)
{
HAL_StatusTypeDef status = HAL_OK;
uint32_t page_error = 0;
// 解锁 Flash
HAL_FLASH_Unlock();
// 写入数据
status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, addr, data);
// 锁定 Flash
HAL_FLASH_Lock();
}
```
需要注意的是,Flash 写入操作需要进行 Flash 解锁和锁定操作,以保证数据写入的正确性和安全性。
阅读全文