声明:我是跟着B站江科大的视频的学习过程中记录下来作者的文案,记录下来是为了方便自己日后复习。如果你也是跟着江科大的视频学习的,可以一起学习
接软件SPI读写W25Q64(上)
STM32--软件SPI读写W25Q64(上)-CSDN博客
接软件SPI读写W25Q64(中)
STM32--软件SPI读写W25Q64(中)-CSDN博客
最后进行验证。
在main函数里先定义两个数组来放要发送和写入的数据。
再写入之前需要先进行扇区擦除。
读取数据。
显示写入0x000000地址下的数据。
显示读取0x000000地址下的数据。
以下是运行后的现象。
验证掉电不丢失的话将以下两行代码注释掉。然后拔掉电源,再插上,发现还是这个数据。
、
在验证一下擦除之后数据变为FF的情况,只擦除不写入。
可以看到读取的数据全是FF。
在验证Flash只能1写0,不能0写1的特性。
先写入。
正常来说是下面的现象。
然后注释擦除,看看会是什么现象。
数据改写为这个。
可以发现写入的跟读取的不一样。
如果不擦除,读出的数据=原始数据 & 写入的数据
再验证写数据能不能跨页写。0x0000FF是一页的最后一个地址,从最后一个地址开始写。
可以看到写入的跟读取不一样,由于读取可以跨页,所以55后面的FF是读到的下一页的。第二页是擦除了的,所以默认是FF。
再把读取位置改到第一页的起始位置,看看。
可以看到页的最后一个地址写完数据后,就从页起始位置覆盖掉原来的数据。
如果自己有一个很大的数组要连续写入,那就只能从软件上分批次进行写入了。先计算数据要跨多少页,然后该擦除的擦除,最后再分批次一页一写,这些可以封装成一个函数。