stm32f103rct6flash读写
时间: 2023-10-21 15:06:58 浏览: 198
要在STM32F103RCT6芯片上进行Flash读写,可以使用HAL库提供的函数进行操作。以下是一个简单的示例代码:
```c
#include "stm32f1xx_hal.h"
#define FLASH_USER_START_ADDR ADDR_FLASH_PAGE_60 // Flash起始地址
#define FLASH_USER_END_ADDR ADDR_FLASH_PAGE_63 // Flash结束地址
#define FLASH_PAGE_SIZE 0x400 // Flash页大小
uint32_t PageError = 0;
FLASH_EraseInitTypeDef EraseInitStruct;
// 写入数据到Flash
void WriteToFlash(uint32_t address, uint32_t data)
{
HAL_FLASH_Unlock(); // 解锁Flash
// 擦除指定页
EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;
EraseInitStruct.PageAddress = address;
EraseInitStruct.NbPages = 1;
HAL_FLASHEx_Erase(&EraseInitStruct, &PageError);
// 写入数据
HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, address, data);
HAL_FLASH_Lock(); // 锁定Flash
}
// 从Flash读取数据
uint32_t ReadFromFlash(uint32_t address)
{
return *(uint32_t*)address;
}
```
在上面的代码中,`WriteToFlash`函数用于将数据写入Flash,`ReadFromFlash`函数用于从Flash中读取数据。需要注意的是,写入数据前需要先擦除对应的Flash页。
阅读全文