先W25Q64介绍:
板上有个带SPI的FLASH产品,W25Q64,华邦公司,大容量64Mb的,也就是8M字节,
(W25Q64把这个8M的容量分为128块-Block,每块64K字节,分出16个扇区,每个扇区4K字节)
即就是:W25Q64--8M 一个块--64K 一个扇区4K
最小擦除单位为一个扇区
关键点---这样我们需要给W25Q64开辟一个至少4K的缓存区,这样对SRAM要求比较高,要求芯片必须有4K以上SRAM才能很好的操作。(嗯,要开辟缓存区)
至于W25Q64的擦写周期10W次、数据保存期限20年,随便用就是了。
支持电压2.7~3.6V,直接用给stm32供电的3.3V即可,不多说。
W25Q64还有一点参数:支持标准的SPI,还支持双输出/四输出的SPI,最大SPI时钟可以到80Mhz(双输出时相当于160Mhz,四输出时相当于320M),更多的W25Q64的介绍,请参考W25Q64的DATASHEET。
嗯,我们的stm32可以用,先用着。
stm32对W25Q64
读FLASH的时候,按地址,及要读的长度,读出来放在数据存储区即可
写FLASH的时候,要考虑扇区剩余大小,写的数据长度控制
if(NumByteToWrite<=secremain)secremain=NumByteToWrite;//
并且,里面已经有数的话,要先擦除这个扇区再写,
实际代码,参考stm32战舰例程