W25Q32介绍
W25Q32是一种使用SPI通讯协议的NOR FLASH存储器,它的CLK/DI/DO引脚分别连接到了STM32对应的SPI引脚SCK/MOSI/MISO上,其中STM32的NSS引脚虽然是其片上SPI外设的硬件引脚,但实际上后面的程序只是把它当成一个普通的GPIO,使用软件的方式控制NSS信号,所以在SPI硬件设计中,NSS可以随便选择普通的GPIO,不必纠结于选择硬件NSS信号。
FLASH芯片中还有WP和HOLD引脚。WP引脚可控制写保护功能,当该引脚为低电平时,禁止写入数据。我们直接接电源,不适用写保护功能。HOLD引脚可用于暂停通讯,该引脚为低电平时,通讯暂停,数据输出引脚输出高阻抗状态,时钟和数据输入引脚无效。我们直接接电源,不使用通讯暂停功能。

注意:
这个flash芯片支支持模式0和模式3。
写的时候必须是先擦除,再写入。
移位是高位优先。

W25Q32框图

FLASH存储器有64个块,每个块中有16个区,每个区可以存储4KB的内容。
写入操作注意事项
写入操作前,必须先进行写使能。
每个数据位只能由1改写为0,不能由0改写为1。
写入数据前必须先擦除,擦除后,所有数据为变为1.擦除必选最小擦除单元进行。
连续写入多个字节时,最多写入一页的数据,超过页尾位置的数据,会回到页首覆盖写入。
写入操作结束后,芯片进入忙状态,不响应新的读写操作。
读取操作注意事项
直接调用读取时序,无需读使能,无需额外操作,没有页限制。
读取操作结束后不会进入忙状态,但不能在忙状态时读取。
读写指令

交换数据时序
我们一般使用SPI的模式0(CPOL=0,CPHA=0),下面是模式0的数据交换时序图。
