[应用相关] STM32的flash当做存储使用时只能按页擦除按页写吗?

[复制链接]
3841|20
 楼主| yangjiaxu 发表于 2025-1-24 15:37 | 显示全部楼层 |阅读模式
STM32的flash当做存储使用时只能按页擦除按页写吗?
一秒落纱 发表于 2025-2-8 01:00 | 显示全部楼层
STM32Flash当做存储使用时,确实主要是按页擦除和按页(或指定大小的数据单位)写入的

夜阑风雨 发表于 2025-2-8 02:00 | 显示全部楼层
STM32Flash擦除操作是以页为单位的。这意味着,当你需要擦除Flash中的某些数据时,你必须整页地擦除,而不能只擦除页中的一部分

远山寻你 发表于 2025-2-8 03:00 | 显示全部楼层
擦除操作是写入操作的前置步骤,因为Flash的写入操作遵循“先擦除,后写入”的原则

光辉梦境 发表于 2025-2-8 04:00 | 显示全部楼层
虽然擦除操作是以页为单位,但写入操作则更加灵活。STM32允许以16位半字宽度数据为单位进行写入,这意味着你可以写入单个的半字(16位)数据,也可以写入多个连续的半字数据

三生万物 发表于 2025-2-8 05:00 | 显示全部楼层
写入操作允许跨页进行,但需要注意的是,在写入新数据之前,目标页必须已经被擦除

冰春彩落下 发表于 2025-2-8 06:00 | 显示全部楼层
STM32Flash有寿命限制,通常最多只能重复擦写10万次。因此,在程序设计中,应避免无谓的重复擦写操作,以延长Flash的使用寿命

别乱了阵脚 发表于 2025-2-8 07:00 | 显示全部楼层
在进行Flash编程操作(包括写或擦除)时,必须确保STM32的内部RC振荡器(HSI)已打开

江河千里 发表于 2025-2-8 08:00 | 显示全部楼层
STM32Flash还提供了读写保护功能,以防止数据被意外修改。这一功能可以通过配置相关的寄存器来启用或禁用

暖了夏天蓝了海 发表于 2025-2-8 09:00 | 显示全部楼层
STM32Flash当做存储使用时,主要是按页擦除和按页(或指定大小的数据单位)写入的

公羊子丹 发表于 2025-2-8 09:02 | 显示全部楼层
是的,STM32 的 Flash 只能按页擦除,但写入可以按字节或字来完成。
周半梅 发表于 2025-2-8 09:03 | 显示全部楼层
Flash 擦除的确只能按页操作,这是 Flash 存储的物理特性决定的。
帛灿灿 发表于 2025-2-8 09:04 | 显示全部楼层
如果需要频繁写小数据块,可以考虑用 EEPROM 模拟库来减少擦除次数。
童雨竹 发表于 2025-2-8 09:05 | 显示全部楼层
注意 STM32 有些系列提供独立的 EEPROM 区域,比如 F0、L 系列,不需要用 Flash。
万图 发表于 2025-2-8 09:06 | 显示全部楼层
Flash 擦写次数有限,建议做好数据管理,比如按块轮询写入来延长寿命。
Wordsworth 发表于 2025-2-8 09:07 | 显示全部楼层
在写入数据时,不必按页写,只要不跨页即可,STM32 的 Flash 写操作是很灵活的。
Bblythe 发表于 2025-2-8 09:08 | 显示全部楼层
擦除时间比较长,如果数据更新频繁的话,可能影响性能,设计时需要考虑到。
Pulitzer 发表于 2025-2-8 09:10 | 显示全部楼层
为了避免频繁擦写,可以先读取 Flash 内容,对需要改动的数据部分进行更新后再写。
Uriah 发表于 2025-2-8 09:11 | 显示全部楼层
有些 STM32 芯片支持双分区 Flash,可以利用这个特性实现更高效的数据管理。
Clyde011 发表于 2025-2-8 09:12 | 显示全部楼层
你也可以引入 wear leveling 算法来优化 Flash 存储寿命,这在持久存储场景中很实用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:擅长电路设计、物联网产品开发、射频产品开发,喜欢打篮球,技术交流,欢迎各位来聊~

805

主题

3383

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部