FLASH_MODE_PRE_FLASH 写个demo预闪一次
时间: 2024-12-18 13:27:13 浏览: 9
`FLASH_MODE_PRE_FLASH`通常是在STM32系列微控制器的固件编程中使用的,它表示在正式写入Flash之前先执行一次预擦除操作。这样做的目的是确保数据区准备好接受新的程序数据,避免因为旧数据残留在Flash中导致写入错误。
以下是一个简单的STM32F103C8T6使用 HAL库进行预闪写的示例代码片段(假设我们已经在系统配置了Flash分区并初始化了HAL库):
```c
#include "stm32f1xx_hal.h"
void main(void)
{
// 初始化硬件和系统
HAL_Init();
SystemClock_Config();
// 获取Flash资源句柄
Flash_HandleTypeDef hflash;
// 配置预闪模式
hflash.Instance = FLASH;
hflash.Init.EraseOption = FLASH_EraseOption.ONE_LINE;
hflash.Init.StuckFlagProgram = DISABLE; // 禁止处理闪存死区
if (HAL_FLASH_Init(&hflash) != HAL_OK) {
while (1); // 如果初始化失败,无限循环
}
// 执行预闪
if (HAL_FLASH_PreloadPages(&hflash, FLASH preload_page_ALL) != HAL_OK) {
while (1); // 预加载错误,同样无限循环
}
// 正式开始程序写入...
// 在这里写入你的应用程序代码
// 后续执行代码...
// 别忘了最后释放Flash资源
HAL_FLASH_DeInit(&hflash);
}
```
阅读全文