[STM32H7] STM32H743一个扇区128K,扇区中间地址写数据,地址前后的数据内容不变,有什么好的方法?

[复制链接]
 楼主| laocuo1142 发表于 2024-10-8 12:18 | 显示全部楼层 |阅读模式
扇区128K,写数据要擦除整个扇区,扇区的其他数据页被擦除掉了,怎么不改变扇区其他地址的数据不变
sfd123 发表于 2024-10-8 12:27 | 显示全部楼层
不变的放在一个扇区,变化的放在另外一个扇区?
星辰大海不退缩 发表于 2024-10-8 22:12 | 显示全部楼层
扇区的地址不是固定的嘛
略略u 发表于 2024-10-11 21:53 来自手机 | 显示全部楼层
扇区的其他数据页被擦除
Stahan 发表于 2024-10-13 21:29 | 显示全部楼层
擦除完了再复制回来
月亮一键变蓝 发表于 2024-11-6 10:58 | 显示全部楼层
指定位置写入也是可以的,但是容易误擦到有效数据的
她已醉 发表于 2024-11-7 01:00 | 显示全部楼层
在STM32H743微控制器中,Flash存储器的扇区大小为128KB。如果你需要在扇区中间的某个地址写入数据,同时保持该地址前后的数据内容不变,可以使用Flash编程库
我吃小朋友 发表于 2024-11-7 02:00 | 显示全部楼层
STM32提供了HAL库和LL库,可以方便地进行Flash编程操作。你可以使用这些库来实现数据的写入和擦除操作
未说出口的像你 发表于 2024-11-7 03:00 | 显示全部楼层
使用双缓冲区也是可以支持的
春日负喧 发表于 2024-11-7 04:00 | 显示全部楼层
如果你不想擦除整个扇区,可以使用双缓冲区的方法,将数据写入RAM中的缓冲区,然后再将缓冲区数据写回Flash
一只眠羊 发表于 2024-11-7 05:00 | 显示全部楼层
读取目标扇区数据到缓冲区:将目标扇区的数据读取到RAM中的缓冲区。修改缓冲区数据:在缓冲区中修改目标地址的数据。写回Flash:将缓冲区的数据写回Flash
温室雏菊 发表于 2024-11-7 06:00 | 显示全部楼层
方法一通过擦除整个扇区并恢复数据,适用于对Flash操作要求较高的场景
将爱藏于深海 发表于 2024-11-7 07:00 | 显示全部楼层
建议通过双缓冲区的方式,避免了频繁的擦除操作,适用于对Flash寿命要求较高的场景。根据具体需求选择合适的方法即可
在曼谷的春 发表于 2024-11-7 08:00 | 显示全部楼层
那你就擦除指定地址数据呗,这就好了啊
失物招領 发表于 2024-11-7 09:00 | 显示全部楼层
这种操作意义何在?我觉得不如把数据放在后面,前面的放程序比较好哦
yellow555 发表于 2024-11-8 21:02 来自手机 | 显示全部楼层
写数据要擦除整个扇区,扇区的其他数据页被擦除掉了,怎么不改变扇区其他地址的数据
哈根达斯uz 发表于 2024-11-14 22:50 来自手机 | 显示全部楼层
扇区的其他数据页被擦除掉了
公羊子丹 发表于 2025-1-24 14:14 | 显示全部楼层
STM32的闪存写操作确实要整扇区擦除,这个没办法绕过,建议把整个扇区的数据先读出来,改完再整体写回去。
周半梅 发表于 2025-1-24 14:16 | 显示全部楼层
你可以用外部的EEPROM或者FRAM存储小块数据,这样就不用担心扇区擦除的问题了。
帛灿灿 发表于 2025-1-24 14:17 | 显示全部楼层
如果只是改一小部分数据,可以用STM32的备份寄存器或者SRAM加电池备份的方式,省得改闪存。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1296

主题

6236

帖子

15

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