stm32 flash hal
时间: 2023-12-20 22:05:49 浏览: 164
STM32 Flash HAL是STM32 HAL库中的一部分,它提供了一组API,用于在STM32微控制器上进行Flash存储器的读写操作。使用STM32 Flash HAL,您可以轻松地读取和写入Flash存储器中的数据,而无需编写底层驱动程序代码。以下是使用STM32 Flash HAL进行Flash操作的一些示例代码:
1.初始化Flash
```c
FLASH_EraseInitTypeDef EraseInitStruct;
uint32_t SectorError = 0;
// 初始化Flash
HAL_FLASH_Unlock();
// 初始化擦除结构体
EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS;
EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3;
EraseInitStruct.Sector = FLASH_SECTOR_5;
EraseInitStruct.NbSectors = 1;
// 擦除Flash扇区
if (HAL_FLASHEx_Erase(&EraseInitStruct, &SectorError) != HAL_OK)
{
// 擦除失败
}
// 锁定Flash
HAL_FLASH_Lock();
```
2.写入数据到Flash
```c
uint32_t Address = 0x0800F000;
uint32_t Data = 0x12345678;
// 初始化Flash
HAL_FLASH_Unlock();
// 写入数据到Flash
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, Address, Data) != HAL_OK)
{
// 写入失败
}
// 锁定Flash
HAL_FLASH_Lock();
```
3.读取Flash中的数据
```c
uint32_t Address = 0x0800F000;
uint32_t Data = *(uint32_t*)Address;
```
阅读全文