laocuo1142 发表于 2024-10-8 12:18

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

扇区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加电池备份的方式,省得改闪存。
页: [1] 2
查看完整版本: STM32H743一个扇区128K,扇区中间地址写数据,地址前后的数据内容不变,有什么好的方法?