基于cubeMX的正点原子miniSTM32对W25Q64的存储使用

一、实现目标

使用cubeMX建立项目工程,结合正点原子提供的hal库对W25Q64闪存调用的例程,实现W25Q64的读写。

二、实现过程

1、首先建立cubeMX工程,其他项设置不再叙述,只看连接W25Q64的SPI设置,这里使用SPI1:

设置完成后,使用SPI的引脚会自动标注,如下图

2、手动设置添加W25Q64的片选引脚PA2为输出引脚:

3、设置完成,生成代码

4、打开项目代码后,可看到已经生成的SPI.C代码:

5、添加正点原子hal库的w25q64驱动程序,如下图,注意先添加.C程序后也要添加w25q64.h的头文件路径,具体添加过程不再叙述。

6、添加完成后,需要修改一部分w25q64.c和w25q64.h,首先将片选PA2引脚重新宏定义置高低电平:

7、然后在w25q64.c中添加一个1us的延时函数,因为后面驱动函数中要用到1us延时:

8、然后将w25q64.c中原有初始化SPI的程序代码注释掉

9、最后替换驱动函数中所有的片选引脚的置高和置低语句,如下图:

10、main函数中仍然使用正点原子的例程代码如下

可以实现将TEXT_Buffer数组的数据写入flash中,地址为倒数第100个地址,该地址也可以更改为从0地址开始写,然后从该地址读出数据,显示在屏幕上,从而实现了数据存储在flash中,掉电后flash中的数据不会清空。

相关推荐
炸膛坦客9 小时前
单片机/C语言八股:(八)指针函数 和 函数指针
c语言·单片机
CHANG_THE_WORLD9 小时前
glog3 捕获Windows异常崩溃信号
windows·stm32·单片机
易水寒陈9 小时前
单片机的命令模式
单片机·命令模式
集芯微电科技有限公司9 小时前
700V/1.6A单通道GaN FET增强型驱动器具有零反向恢复损耗
人工智能·单片机·嵌入式硬件·深度学习·神经网络·机器学习·生成对抗网络
承前智9 小时前
Arduino1.8.19与stm32+ESP32的geek卸载及环境安装
stm32·单片机·嵌入式硬件
全栈游侠9 小时前
STM32F103XX 05-时钟配置分析与自举程序
stm32·单片机·嵌入式硬件
学嵌入式的小杨同学10 小时前
STM32 入门封神之路(四):GPIO 实战 + 寄存器深度拆解 ——LED 控制 + 按键检测全流程(含位操作 + 面试题)
stm32·单片机·嵌入式硬件·硬件架构·硬件工程·智能硬件·嵌入式实时数据库
撩妹小狗10 小时前
定时器PWM输出功能的使用
单片机·嵌入式硬件
xu_wenming10 小时前
跨文件数据共享模式:通过静态全局变量与访问函数结合
嵌入式硬件·mcu·物联网·设计规范
学嵌入式的小杨同学12 小时前
STM32 进阶封神之路(七):中断核心原理 + NVIC 深度解析 —— 从概念到寄存器配置(面试重点)
stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb·嵌入式实时数据库