eeprom stm8l 擦除 读写_STMCubeMx入门教程(6) SPI 读写FLAH的应用

本教程介绍如何使用STM8L通过SPI对W25Q64 FLASH进行读写操作,详细讲解CubeMX配置、MDK代码实现及效果验证,涉及SPI配置、软件片选、读写函数等。
摘要由CSDN通过智能技术生成

导语“本教程将使用CubeMX初始化SPI,使用SPI对W25Q64 FLASH进行读写操作,通过HAL库的读写应用来数据FLASH的操作细节。”

01

------------ 系统要求-----------------


•硬件

 野火指南者开发板

•软件

 CubeMx & MDK & 串口调试助手

•原理图

 b89d242fd4e9dfec878203ac5ceece04.png

根据原理图,我们看到FLASH连接在SPI1上,我们不适用SPI1自带片选,使用PC0开进行软件片选。


02

------第二节 CubeMx配置-----------------


(1) 我们还是使用前面的USART串口(串口的配置没有变化)项目,在此基础上进行SPI1 的配置:

2a3785152c8e2b5254af99cacad8236b.png

我们从配置的信息上看,使用了SPI1,主从全双工模式,8位数据传输,高字节在前,模式3,CRC不校验,软件控制。SPI的模式配置看下图,采样时刻是偶数边沿所以CLOCK Phase =2:

132584e2a94ccc90a4dd515ae91a00c6.png

(2) 完成片选信号的GPIO配置

c6bcb30f3128e1e4c2e204cfab930a20.png

完成上述配置后点击代码生成。


03

------------第三节MDK 配置--------------


将CubeMx生成的代码使用MDK打开进行应用代码编写:

在spi.h 中进行FLASH操作的指令宏定义:

 //指令表#define W25X_WriteEnable                     0x06 #define W25X_WriteDisable                     0x04 #define W25X_ReadStatusReg                     0x05 #define W25X_WriteStatusReg              0x01 #define W25X_ReadData                            0x03 #define W25X_FastReadData                     0x0B #define W25X_FastReadDual                     0x3B #define W25X_PageProgram                     0x02 #define W25X_BlockErase                     0xD8 #define W25X_SectorErase                     0x20 #define W25X_ChipErase                            0xC7 #define W25X_PowerDown                            0xB9 #define W25X_ReleasePowerDown       0xAB #define W25X_DeviceID                     xAB #define W25X_ManufactDeviceID       0x90 #define W25X_JedecDeviceID              0x9F// others defined#define sFLASH_ID    0XEF4017#define Dummy_Byte   0XFF#define SPI_FLASH_PageSize                    256#define SPI_FLASH_PerWritePageSize        256#define SPI1_TIME_OUT                              0xFFFF

并且申明应用的操作函数:

void SPI_FLASH_SectorErase(uint32_t SectorAddr);uint32_t  SPI_Fl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值