[N32G430] 要把16bit数据写flash里是不是得先读出后面的然后以32bit写入啊?

[复制链接]
 楼主| EmmaTT 发表于 2024-7-23 23:03 来自手机 | 显示全部楼层 |阅读模式
老哥们说好像只能32bit写入
t1ngus4 发表于 2025-2-13 18:06 | 显示全部楼层
将16bit数据写入flash时,并不需要先读出后面的数据再以32bit写入
ex7s4 发表于 2025-2-13 19:15 | 显示全部楼层
Flash存储器通常用于存储代码和一些定义为const的数据,以及用户自定义的保存数据。它的特点是断电不丢失数据,且支持按页或扇区进行擦除和写入操作
y1n9an 发表于 2025-2-13 20:24 | 显示全部楼层
解锁Flash在进行Flash写入操作之前,通常需要先解锁Flash,以便能够访问Flash控制寄存器。
suw12q 发表于 2025-2-13 21:49 | 显示全部楼层
由于Flash只能对已经擦除的区域进行写入,因此在写入新的16bit数据之前,需要先擦除目标扇区。擦除操作是按页或扇区进行的,而不是按字节或字进行的
cen9ce 发表于 2025-2-13 23:16 | 显示全部楼层
一般擦除扇区后,就可以将16bit数据写入指定的Flash地址了。写入时,可以直接使用支持16bit写入的Flash编程函数(如STM32中的HAL_FLASH_Program函数,并选择适当的TypeProgram参数来指示写入数据的类型,如16位半字)
q1d0mnx 发表于 2025-2-14 09:10 | 显示全部楼层
在写入16bit数据时,并不需要先读出后面的数据。因为Flash写入操作是覆盖式的,即写入新数据会替换掉原有数据。所以,只要确保目标扇区已经被擦除,就可以直接写入新的16bit数据。
l1uyn9b 发表于 2025-2-14 10:23 | 显示全部楼层
地址对齐,在写入数据时,需要注意地址对齐问题
w2nme1ai7 发表于 2025-2-14 11:25 | 显示全部楼层
在实际应用中,很多Flash控制器都支持非对齐写入,因此这个问题可能并不总是存在
zhizia4f 发表于 2025-2-14 12:36 | 显示全部楼层
在写入数据后,通常需要验证数据的完整性。这可以通过读取刚刚写入的数据并与原始数据进行比较来实现
g0d5xs 发表于 2025-2-14 14:31 | 显示全部楼层
将16bit数据写入flash时,并不需要先读出后面的数据再以32bit写入。只需按照Flash存储器的操作规范进行解锁、擦除扇区和写入数据即可
地瓜patch 发表于 2025-2-27 12:18 来自手机 | 显示全部楼层
符合函数定义即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

431

帖子

0

粉丝
快速回复 返回顶部 返回列表