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

STM32F10x Flash容量读取不一致判定及运行时识别方法咨询

两个检测结果的真实性判断
  • 0x1FFFF7E0是STM32F1系列官方定义的电子签名区Flash容量寄存器,单位为1KB,由ST在出厂时烧写且用户不可修改,正品STM32芯片的该值通常为准确值。
  • 你遇到的两个结果不一致的情况,多出现在使用非正品STM32的Blue Pill开发板上,常见场景包括:使用国产兼容MCU、拆机后重新打标的MCU、或是ST分档生产时未完全锁死更高地址Flash的C8T6型号。
  • 唯一可靠的判断方法是实际读写测试:对0x08000000起始的Flash地址段进行校验,从64KB偏移地址(0x08010000)开始写入随机测试数据,断电重启后读回比对,如果数据完全一致,说明实际Flash容量为128KB;如果写入失败、读回数据错误或是触发硬件错误,说明真实容量为64KB,stm32flash返回的128KB属于误判,通常是因为兼容芯片的串口bootloader返回了错误的容量参数,或是stm32flash根据识别到的芯片型号默认匹配了128KB参数。
板载程序自动识别真实Flash容量的方法

如果确认实际可用容量为128KB,程序可以通过Flash擦写测试的方式自动识别最大可用容量,操作步骤如下:

  • 测试前先备份待测试Flash页的原有数据,避免破坏现有运行程序
  • 解锁Flash控制寄存器,按Flash页大小从低地址到高地址依次进行写入、回读校验操作
  • 遇到第一个校验失败的页时停止测试,此前所有可正常完成校验的页的总大小就是真实可用的Flash容量
  • 测试完成后恢复之前备份的Flash数据,重新锁定Flash控制寄存器即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:48:04