#ifndef FLASH_COUNTER_H #define FLASH_COUNTER_H #include "main.h" #include // STM32F405 1MB Flash 最后一个扇区(Sector 11, 128KB) // 地址范围 0x080E0000 ~ 0x080FFFFF // 确保链接脚本 FLASH ORIGIN+LENGTH 不超过 0x080E0000 #define FLASH_COUNTER_SECTOR FLASH_SECTOR_11 #define FLASH_COUNTER_ADDR 0x080E0000UL #define FLASH_COUNTER_MAGIC 0x5A5A1234UL // 从 Flash 读取计数器。首次使用(未写入)时 *counter = 0,返回 HAL_OK HAL_StatusTypeDef FlashCounter_Init(uint32_t *counter); // 将新计数器值擦除写入 Flash(约 1~2 ms) HAL_StatusTypeDef FlashCounter_Write(uint32_t counter); #endif // FLASH_COUNTER_H