一、结论:
1、每次页编程、扇区擦除、块擦除、芯片擦除和写状态寄存器指令之前都需要先发送“写使能”指令(即发送命令0x06);
2、W25Qxx一次最多只能写一页(256字节),且一个指令帧不能跳页写;
3、因为nordic的SPIM每次只能发送255个字节,而在写入数据时,包含1字节指令,3字节地址,因此一次最多只能发送251字节的数据;
二、问题
问题1:什么是跳页写?
W25Qxx每一页地址是固定的,0x000000~0x0000FF为第一页,0x000100~0x0001FF为第二页,以此类推;假设我们现在要将20个数据通过一个指令帧写入到0x0000F0~0x000103就是跳页写,其中0x0000F0~0x0000FF为一页,0x000100~0x000103为另一页
问题2:跳页写会产生什么问题?
如果发生了跳页写,原本希望写到第二页的数据会从当前页的第一字节开始重新写入,并依次进行按位与“动作”,将结果写入到flash中(注意并不是覆盖,因为flash只能写0不能写1)
三、验证:
1、图1-1,图1-2与图1-3是程序示例,表示将gImageLight1中的数据分两次写入到flahs中,之后读出flash中的数据,图