当前位置: 首页 > news >正文

硬件SPI读写W25Q64

代码实现了 STM32 与 W25Q64 之间的 SPI 通信,完成了设备 ID 读取、扇区擦除、数据写入和读取等闪存操作,并将相关数据显示在 OLED 屏幕上,用于验证闪存操作的正确性。

在  main  函数中,首先初始化 OLED 显示屏,初始化 W25Q64 闪存芯片。
W25Q64_Init()  内部初始化自定义的 SPI 通信模块,包括 GPIO 引脚配置(如设置 SPI 相关引脚的模式、速度等)和 SPI 接口的参数配置(如主从模式、数据方向、数据大小、时钟极性、相位等)。
调用  W25Q64_ReadID(&MID, &DID)  函数读取 W25Q64 的制造商 ID(MID)和设备 ID(DID)。
在  W25Q64_ReadID  函数中,通过  MYSPI_Start()  使能 SPI 通信(拉低片选信号),然后依次发送读取 ID 的命令  W25Q64_JEDEC_ID ,并接收 MID 和 DID,最后通过  MYSPI_Stop()  停止 SPI 通信(拉高片选信号)。
读取到的 MID 和 DID 通过  OLED_ShowHexNum  函数显示在 OLED 屏幕上。

调用  W25Q64_SectorErase(0x0000000)  对 W25Q64 的指定扇区(这里是起始扇区)进行擦除操作。在擦除前会调用  W25Q64_WriteEnable()  使能写入,擦除过程中通过  W25Q64_WaitBusy()  等待擦除完成(轮询状态寄存器,直到忙标志位清除)。
调用  W25Q64_PageProgram(0x0000000, ArrayWrite, 4)  将  ArrayWrite  数组中的数据写入到 W25Q64 的指定地址。同样需要先使能写入,然后发送页编程命令、地址,再发送要写入的数据,最后等待写入完成并停止 SPI 通信。
调用  W25Q64_ReadData(0x0000000, ArrayRead, 4)  从 W25Q64 的指定地址读取数据到  ArrayRead  数组中。
写入的数据和读取到的数据分别通过  OLED_ShowHexNum  函数显示在 OLED 屏幕上,以便对比验证数据的写入和读取是否正确。

http://www.dtcms.com/a/357997.html

相关文章:

  • 北京交通大学:LLM的agent推理框架综述
  • 算法复习笔记: 双指针_二分查找篇
  • 详解推测性采样加速推理的算法逻辑
  • Kafka 消费模型
  • 本地运行的检索PDF文件中出现关键字的python程序
  • 2025年如何批量下载雪球帖子和文章导出pdf?
  • 2025 批量下载雪球和东方财富帖子和文章导出excel和pdf
  • kind集群应用
  • 《云原生架构从崩溃失控到稳定自愈的实践方案》
  • 「鸿蒙系统的编程基础」——探索鸿蒙开发
  • 第12章:推荐算法与实践
  • 科技感网页计时器.html
  • 设计模式:抽象工厂模式(Abstract Factory Pattern)
  • 在word以及latex中引用zotero中的参考文献
  • 单例模式的mock类注入单元测试与友元类解决方案
  • 云存储(参考自腾讯云计算工程师认证)
  • Twitter舆情裂变链:指纹云手机跨账号协同机制提升互动率200%
  • 使用电脑操作Android11手机,连接步骤
  • 【序列晋升】21 Spring Cloud Gateway 云原生网关演进之路
  • DVWA靶场通关笔记-CSRF(Impossible级别)
  • 【90页PPT】新能源汽车数字化转型SAP解决方案(附下载方式)
  • 汽车加气站操作工证考试的复习重点是什么?
  • 【自然语言处理与大模型】多机多卡分布式微调训练的有哪些方式
  • C++ constexpr:编译时计算的高效秘籍
  • 复现论文块体不锈钢上的光栅耦合表面等离子体共振
  • 10.2 工程学中的矩阵
  • hadoop安欣医院挂号看诊管理系统(代码+数据库+LW)
  • 使用 Ansible 和 Azure Pipelines 增强您的 DevOps
  • Midjourney绘画创作入门操作创作(广告创意与设计)
  • 腾讯云centos7.6的运维笔记——从yum的安装与更新源开始