You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为存储WiFi配置,能否将STM32F4的flash_erase_sector适配到STM32F103C8?

STM32F103C8适配F4系列flash_erase_sector函数的问题解答
  • 核心结论:STM32F103C8不能直接使用F4系列的flash_erase_sector函数,两者的闪存架构、HAL库实现差异显著。

  • 具体差异原因:

    1. 闪存结构不同:F103C8的闪存采用分页(Page)结构,而F4系列是扇区(Sector)结构,擦除操作的基本单元定义完全不同。
    2. HAL库函数实现不同:F1系列的闪存擦除函数为HAL_FLASHEx_Erase,定义在stm32f1xx_hal_flash_ex.h中,参数是FLASH_EraseInitTypeDef结构体,需指定擦除类型(分页擦除)和起始页;而F4的flash_erase_sector是专门针对扇区设计的擦除函数。
  • 适配方案:

    1. 使用F1系列HAL库提供的标准闪存操作函数,示例流程:
      • 解锁闪存:HAL_FLASH_Unlock()
      • 配置擦除初始化结构体:
        FLASH_EraseInitTypeDef EraseInitStruct;
        EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;
        EraseInitStruct.PageAddress = 0x0800F000; // 选择要擦除的起始页地址
        EraseInitStruct.NbPages = 1; // 要擦除的页数
        
      • 执行擦除:HAL_FLASHEx_Erase(&EraseInitStruct, &PageError);
      • 锁定闪存:HAL_FLASH_Lock()
    2. 存储WiFi配置这类小数据时,建议选择F103C8闪存的最后几个分页(避免覆盖程序区),每次更新先擦除分页再写入数据。

内容的提问来源于stack exchange,提问作者Kerem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:01:35