本文主要是介绍spi_flash的操作(擦除、写数据),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SPI_FLASH的擦除、写、读操作
- 继续在上一节中的spi_flash.c文件中编写。
- 明确添加代码所要实现的功能:对spi_flash进行各种操作(去保护、擦除、(烧)写操作、读操作)。
明确对spi_flash写操作的流程:去保护 -> 擦除 -> 烧写。
完成各模块的函数
4.1 去保护操作(去“两层保护”:状态寄存器,数据存储区)
—将“两次去保护”放在SPI_Flash_Init函数

—去状态寄存器保护:SPI_Flash_ClearProtect_ForStatusRegs

—去数据存储区保护:SPI_Flash_ClearProtect_ForData

—去保护函数的子函数
读两个状态寄存器的值:SPI_Flash_ReadStatusReg1()、SPI_Flash_ReadStatusReg2

写两个状态寄存器的值:SPI_Flash_WriteStatusRegs()

4.2 擦除(需要一段时间)

4.3 (烧)写操作

4.4 读操作

4.5 以上的写寄存器值、擦除、烧写均需要使能函数和等待函数
使能函数:SPI_Flash_Enable()
等待函数:SPI_Flash_Wait_WhenBusy()
在头文件spi_flash.h中添加需要给外部提供的函数,并在main.c文件中调用并实现打印。
—在spi_flash.h中添加需要给外部提供的函数

—main函数中调用

上传文件,编译成功后,烧写新的i2c.bin文件,观察串口打印以及OLED打印(如图)
—编译成功

—串口打印

—OLED打印

12/30/2017 12:25:13 AM
这篇关于spi_flash的操作(擦除、写数据)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!