实现简单的SPI读写FLASH

您所在的位置:网站首页 flash芯片读写正常有没有坏 实现简单的SPI读写FLASH

实现简单的SPI读写FLASH

2023-07-31 13:51| 来源: 网络整理| 查看: 265

实现简单的SPI读写FLASH

一、前言 继上篇文章SPI的相关知识,本章主要介绍使用SPI协议实现简单的读写FLASH,写入功能主要介绍的是定量数据的页写入,在文章末尾有不定量数据写入的代码例子。使用的开发板是STM32f10x系列,Flash芯片是W25Q64。

二、简介 Flash是属于非易失性存储器,又称为闪存,和EEPROM一样都是掉电后数据不会丢失的存储器。不过,Flash和EEPROM的区别在于,①Flash的存储容量大于EEPROM,②Flash在写入之前的擦除操作时,需要以扇区为最小单位擦除(意思是一大片一大片的擦粗),而EEPROM是允许以字节为单位擦除。

下文中不会对Flash进行仔细地介绍,但要注意的是SPI协议对Flash进行的命令操作,需要进行通过查阅对应Flash的芯片数据手册才能得知,在下文的写宏的头文件(bsp_spi_falsh.h)中,会定义好Flash的内部代码命令。

SPI对Flash的操作,是将要执行的功能的指令编码先发送给Flash,让它知道你要用什么功能。该表中的第一列为指令名,第二列为指令编码,第三至第 N 列的具体内容根据指令的不同而有不同的含义。其中带括号的字节参数,方向为 FLASH 向主机传输,即命令响应,不带括号的则为主机向 FLASH 传输。

在这里插入图片描述在这里插入图片描述 在这里插入图片描述 ———————————————————————————————— 三、SPI的初始化结构体 在这里插入图片描述 ①SPI_Direction: 可设置为双线全(SPI_Direction_2Lines_FullDuplex), 双线只接收(SPI_Direction_2Lines_RxOnly),单线只(SPI_Direction_1Line_Rx)、单线只发送模式(SPI_Direction_1Line_Tx)

②SPI_Mode: 这两个模式的区别在于,若为主机模式,则由stm32来产生SCK的时序;若为从机模式,则由stm32的SPI来接收外来的SCK时序

③SPI_CPOL: 根据要选择的模式配置高电平或低电平

④SPI_CPHA: 根据要选择的模式配置“偶数边沿采样”或者“奇数边沿采样”

⑤SPI_BaudRatePrescaler: 本成员设置波特率分频因子,分频后的时钟即为 SPI 的 SCK 信号线的时钟频率。这个成员参数可设置为 fpclk 的 2、 4、 6、 8、 16、 32、 64、 128、 256 分频

⑥SPI_CRCPolynomial: 这是配置校验位,需要写使能才会起作用,所以不用时,任意写一个数据即可 ————————————————————————————————

四、Flash(W25Q64系列)的硬件引脚 在这里插入图片描述 提示:WP是写保护功能,当WP为低电平时,我们无法再对Flash进行写入,这里设置为高阻态,HOLD 引脚可用于暂停通讯,该引脚为低电平时,通讯暂停,这里同样设置为高阻态不用这个功能。 ————————————————————————————————— 五、代码例子 ①头文件/bsp_spi_flash.h/ 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 ———————————————————————————————— ②spi功能函数文件/bsp_spi_flash.c/

这是初始化SPI、GPIO的函数。 在这里插入图片描述 在这里插入图片描述 这是擦除扇区的函数,要注意的是在扇区擦除指令前,还需要先发送写使能指令,发送扇区擦除指令后,通过读取寄存器状态等待扇区擦除操作完毕 。 在这里插入图片描述 这是发送字节函数,命令编码是由这个函数来发送的。 在这里插入图片描述 这是读取Flash的ID函数,通过校验ID判断Flash是否正常接通。

在这里插入图片描述 这是写使能函数。 在这里插入图片描述 这是等待时序完成函数,在读写过程和擦除过程都需要一段时间,所以需要有一个等待时序完成函数。 在这里插入图片描述 这是定量数据的页写入函数,每次最多只能往Flash写入256个字节。 在这里插入图片描述 这是读数据函数。 在这里插入图片描述 ———————————————————————————————— ③主测试文件/main.c/

测试需要用到串口助手进行测试,所以记得要配置好相应的串口。 在这里插入图片描述 在这里插入图片描述 以上就是实现简单的SPI读写Flash的代码,希望能帮到大家解决问题。下面的代码是不定量数据的页写入的代码。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 ———————————————————————————————— 如有问题请尽情斧正。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3