【STM32 CubeMX】SPI_Flash_W25Q64的操作方法

文章目录

  • 前言
  • 一、W25Q64操作方法
    • 基本概念
    • 1.1 读数据
    • 1.2 写使能
    • 1.3 读状态
    • 1.4 擦除扇区
    • 1.5 烧写页
  • 总结


前言

在嵌入式系统开发中,使用外部 SPI Flash 存储器可以为 STM32 微控制器提供额外的存储空间,以存储程序代码、配置数据等。W25Q64 是一款常见的 SPI Flash 存储器,具有64Mb容量和SPI接口。本文将介绍如何使用 STM32 CubeMX 结合 SPI 库与 W25Q64 SPI Flash 进行集成,以便在 STM32 微控制器上实现外部存储器的读写功能。


一、W25Q64操作方法

基本概念

对于我们的W25Q64,他有64M-bit的内存,有8M byte,他内部的存储地址将会从0~8M-1
如果我们想要去寻址任意一个地址,我们需要传输24位的地址。

如果我们要去读数据,至少要发送24位的地址
写的时候也是一样的,发送24位地址

在我们发送地址之前我们需要发送命令,表示是想要读还是写:
发出命令 0x03,接着发出 24 位的存储地址,就可以读数据了:每读到一个数据,
Flash 内部的地址就增加 1。所以,你可以一直读到存储空间的尾部。

如果我们是写,他不仅要经过读的两个操作
他还会进入内部烧写操作
然后我们还要发出命令去读状态,判断内部烧写工作有没有完成,完成了才能进行下面的操作
他为了确保这些数据不被破坏,你想去写你还要做其他操作:

  1. 写使能:允许后续的写操作
  2. 对于Flash,你要先擦除,发送命令和地址,你想擦除哪个扇区
  3. 最后就是写操作了
    在W25Q64中,每256bytes被称为一个页,擦除的最小单位为16个页,16个页就被称为一个扇区
    你可以以一个扇区来擦除,也可以以块(32kb 128个页,8个扇区)来擦除,还可以一次擦除整个芯片

1.1 读数据

时序图如下:
在这里插入图片描述
我们需要先发送第一个读命令0x03,第一个字节被称为读命令,然后发送3字节的地址,然后芯片就会从DO引脚输出数据,把数据输出给主控

1.2 写使能

时序图如下:
在这里插入图片描述
我们需要发出写使能命令0x06

1.3 读状态

时序图如下:
在这里插入图片描述
在这个芯片里面,他有三个状态寄存器,我们只关心状态1
我们可以发送一个命令0x05,0x35表示读状态2,0x15就是读状态3
然后我们就可以读到一个数据。
这个数据什么含义呢?在这里插入图片描述
S0为1时,表示内部正在擦除操作或者写操作

1.4 擦除扇区

当你设置了写使能之后,你就可以去擦除了
时序图如下:
在这里插入图片描述
先发出命令0x20,然后发送地址,然后就可以启动内部擦除了,这个擦除什么时候完成?我们可以去读状态

1.5 烧写页

时序图如下:
在这里插入图片描述
我们可以发送0x02然后发送地址,就可以进行烧写页了,前提是这个页已经被擦除了。
要注意的是,这一页是256字节,你可以发送一个地址,从page的边界开始,然后你就可以发出1~256个数据,你把整个page全部写入数据。我们也可以不从边界开始,那么你的数据就会从中填充进来,后续你每写一个数据,这个地址就会累加1.


总结

通过本文的介绍,我们了解了如何在 STM32 CubeMX 中配置并使用 SPI 接口与 W25Q64 SPI Flash 存储器进行通信。首先,我们通过 CubeMX 配置了 STM32 的 SPI 外设,包括时钟分频、数据大小、模式等参数。然后,我们编写了初始化代码,将 SPI 外设与 W25Q64 进行连接,并实现了基本的读写功能。在代码编写过程中,我们充分利用了 STM32 的 HAL 库提供的函数,简化了通信过程的实现。最后,我们在主函数中调用了相应的读写函数,并通过调试工具验证了数据的正确性。通过本文的学习,读者可以掌握在 STM32 系列微控制器上使用 CubeMX 和 SPI 库进行 SPI Flash 存储器的读写操作,为嵌入式系统的开发提供了便利。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/474364.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入剖析跨域请求发送两次的原因及解决方案(上)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

linux kernel 内存踩踏之KASAN_SW_TAGS(二)

一、背景 linux kernel 内存踩踏之KASAN(一)_kasan版本跟hasan版本区别-CSDN博客 上一篇简单介绍了标准版本的KASAN使用方法和实现,这里将介绍KASAN_SW_TAGS和KASAN_HW_TAGS 的使用和背后基本原理,下图是三种方式的对比&#x…

计算机设计大赛 深度学习中文汉字识别

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习中文汉字识别 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐&#xf…

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?<= , (?= , (?<! , (?!

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?< , (? , (?<! , (?! 有好多种称呼 (?< , (? , (?<! , (?! 有好多种称呼 , 我称为: 左限定, 右限定, 左否定, 右否定 (?<左限定)    (?右限定)(?<!左否定)    (?!右限定) 再…

人力资源智能化管理项目(day10:首页开发以及上线部署)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/humanResourceIntelligentManagementProject 首页-基本结构和数字滚动 安装插件 npm i vue-count-to <template><div class"dashboard"><div class"container"><!-- 左侧内…

【JavaScript】面试手写题精讲之数组(下)

引入 这章主要讲的是数组的排序篇&#xff0c;我们知道面试的时候&#xff0c;数组的排序是经常出现的题目。所以这块还是有必要进行一下讲解的。笔者观察了下前端这块的常用算法排序题&#xff0c;大概可以分为如下 冒泡排–> 稳定排序插入排序–> 稳定排序选择排序–…

EasyRecovery软件免费版与付费版有哪些功能区别?

免费版的EasyRecovery软件在功能和恢复能力上确实存在一些限制。 首先&#xff0c;在数据恢复方面&#xff0c;免费版通常只能恢复最多1GB的数据。这意味着&#xff0c;如果你需要恢复的数据量超过1GB&#xff0c;你将需要升级到付费版才能完全恢复。 其次&#xff0c;免费版…

Packet content transfer stopped (received 8 bytes)

esp32烧录程序时报错&#xff1a;A fatal error occurred: Packet content transfer stopped (received 8 bytes) 解决方法&#xff1a; 降低上传速度&#xff0c;使用115200&#xff1b;更换flash模式&#xff0c;使用DIO方式重试如果还不行&#xff0c;检查flash连接情况&am…

第11章 GUI

11.1 Swing概述 Swing是Java语言开发图形化界面的一个工具包。它以抽象窗口工具包&#xff08;AWT&#xff09;为基础&#xff0c;使跨平台应用程序可以使用可插拔的外观风格。Swing拥有丰富的库和组件&#xff0c;使用非常灵活&#xff0c;开发人员只用很少的代码就可以创建出…

基于协同过滤的时尚穿搭推荐系统

项目&#xff1a;基于协同过滤的时尚穿搭推荐系统 摘 要 基于协同过滤的时尚穿搭推荐系统是一种能自动从网络上收集信息的工具&#xff0c;可根据用户的需求定向采集特定数据信息的工具&#xff0c;本项目通过研究服饰流行的分析和预测的分析和预测信息可视化时尚穿搭推荐系统…

电阻器的脉冲浪涌能力?

由于现有需求&#xff0c;许多现代电子电路和设备都会经历瞬态脉冲和浪涌。这反过来又导致需要“设计”瞬态浪涌保护&#xff0c;尤其是在电机控制器等电路中。当电机启动时&#xff0c;此时消耗的电流过大&#xff0c;可能导致电阻器故障。同样&#xff0c;如果电容器用于电机…

数学实验第三版(主编:李继成 赵小艳)课后练习答案(十三)(2)

实验十三&#xff1a;数据拟合与数据差值 练习二 1.在飞机的机翼加工时,由于机翼的尺寸很大,所以通常在图纸上只能标出部分关键点的尺寸某型号飞机的机翼上缘轮廓线的部分数据如下: x 0 4.74 9.05 19 38 76 95 114 133 152 171 190 y 0 5.23 8.1 11.97 16.…