打印
[N32G430]

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

[复制链接]
539|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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控制寄存器。

使用特权

评论回复
5
suw12q| | 2025-2-13 21:49 | 只看该作者
由于Flash只能对已经擦除的区域进行写入,因此在写入新的16bit数据之前,需要先擦除目标扇区。擦除操作是按页或扇区进行的,而不是按字节或字进行的

使用特权

评论回复
6
cen9ce| | 2025-2-13 23:16 | 只看该作者
一般擦除扇区后,就可以将16bit数据写入指定的Flash地址了。写入时,可以直接使用支持16bit写入的Flash编程函数(如STM32中的HAL_FLASH_Program函数,并选择适当的TypeProgram参数来指示写入数据的类型,如16位半字)

使用特权

评论回复
7
q1d0mnx| | 2025-2-14 09:10 | 只看该作者
在写入16bit数据时,并不需要先读出后面的数据。因为Flash写入操作是覆盖式的,即写入新数据会替换掉原有数据。所以,只要确保目标扇区已经被擦除,就可以直接写入新的16bit数据。

使用特权

评论回复
8
l1uyn9b| | 2025-2-14 10:23 | 只看该作者
地址对齐,在写入数据时,需要注意地址对齐问题

使用特权

评论回复
9
w2nme1ai7| | 2025-2-14 11:25 | 只看该作者
在实际应用中,很多Flash控制器都支持非对齐写入,因此这个问题可能并不总是存在

使用特权

评论回复
10
zhizia4f| | 2025-2-14 12:36 | 只看该作者
在写入数据后,通常需要验证数据的完整性。这可以通过读取刚刚写入的数据并与原始数据进行比较来实现

使用特权

评论回复
11
g0d5xs| | 2025-2-14 14:31 | 只看该作者
将16bit数据写入flash时,并不需要先读出后面的数据再以32bit写入。只需按照Flash存储器的操作规范进行解锁、擦除扇区和写入数据即可

使用特权

评论回复
12
地瓜patch| | 2025-2-27 12:18 | 只看该作者
符合函数定义即可

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

429

帖子

0

粉丝