FLASH的读写
flash的特性是,写数据只能将1写为0,0不能写为1。擦除数据是将所有数据都写为1。因此如果想在已经数据的flash上写⼊新的数据,则必须先擦除。
FLASH的块/扇区/页关系
常⽤FLASH擦写规则
最⼩擦除单位:扇区
可选择擦除单位:扇区、块、全⽚
最⼤编程(写⼊)单位:页( 256 Byte),⼤于256 Byte则需要循环写⼊。
Flash 写⼊数据时和 EEPROM 类似,不能跨页写⼊,⼀次最多写⼊⼀页,W25Q128的⼀页是 256 字节。写⼊数据⼀旦跨页,必须
在写满上⼀页的时候,等待 Flash 将数据从缓存搬移到⾮易失区,重新再次往⾥写。
最⼩编程(写⼊)单位:1 Byte,即⼀次可写⼊ 1~256 Byte的任意长度字节。
未写⼊时FLASH⾥⾯的数据为全1,即0xFF。
只能由 1 —> 0 写⼊,不能由 0 —> 1 写⼊,即如果已经写⼊过了,则需要先擦除(擦除后数据变为全1)再写⼊。
⽰例:0xF0(1111 0000),即⾼4位可写⼊,低4位不可写⼊。
Flash还分为按字节写入,页写入等等呢
其实flash还挺好用的,就是还得解锁啥的, 比较麻烦
我一般都是喜欢用W25Q128,就比较简单,而且操作很容易
写入数据之前,必须得解锁吧
一般都是按页或者扇区写入的,就比较麻烦,写一个字节,就要动一片字节
你可以看看铁电这种,可以按照字节写入,挺有意思
话说flash和eerom这种不一样是吧
单片机内部的flash就这样,必须按页写入比较OK
写入之前要将锁解开,然后写完再加锁,这样保护数据不丢失
能按全片操作么?就拿W25Q128来说
页:
[1]