K_A39_012 基于STM32驱动W25Q32 模块读写数据 串口+OLED0.96显示

article/2025/11/7 12:36:49

K_A39_012 基于STM32驱动W25Q32 模块读写数据 串口+OLED0.96显示

  • 所有资源导航
  • 一、资源说明
  • 二、基本参数
    • 参数
    • 引脚说明
  • 三、驱动说明
    • 时序
    • 对应程序:
  • 四、部分代码说明
    • 1、接线引脚定义
      • 1.2、STM32F103C8T6+W25Q32 模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STM32F103C8T6

请添加图片描述

所有资源导航

其他资料目录 直戳跳转

一、资源说明

单片机型号测试条件模块名称代码功能

| STM32F103C8T6 | 晶振8M/系统时钟72M |W25Q32 模块 |STM32F103C8T6驱动W25Q32 模块 串口与OLED0.96双显示 |

二、基本参数

参数

请添加图片描述

引脚说明

W25Q32 模块引脚说明
VCC正极 3.3V供电
GNDGND 电源负极
MISOSPI总线 主机输入从机输出引脚
MOSISPI总线 主机输出从机输入引脚
SCKSPI总线 时钟引脚
CS片选信号脚

三、驱动说明

时序

请添加图片描述

对应程序:

SPI初始化程序:
/*** @brief  SPI_FLASH初始化* @param  无* @retval 无*/
void SPI_FLASH_Init(void)
{SPI_InitTypeDef  SPI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;/* 使能SPI时钟 */FLASH_SPI_APBxClock_FUN ( FLASH_SPI_CLK, ENABLE );/* 使能SPI引脚相关的时钟 */FLASH_SPI_CS_APBxClock_FUN ( FLASH_SPI_CS_CLK|FLASH_SPI_SCK_CLK|FLASH_SPI_MISO_PIN|FLASH_SPI_MOSI_PIN, ENABLE );/* 配置SPI的 CS引脚,普通IO即可 */GPIO_InitStructure.GPIO_Pin = FLASH_SPI_CS_PIN;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(FLASH_SPI_CS_PORT, &GPIO_InitStructure);/* 配置SPI的 SCK引脚*/GPIO_InitStructure.GPIO_Pin = FLASH_SPI_SCK_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(FLASH_SPI_SCK_PORT, &GPIO_InitStructure);/* 配置SPI的 MISO引脚*/GPIO_InitStructure.GPIO_Pin = FLASH_SPI_MISO_PIN;GPIO_Init(FLASH_SPI_MISO_PORT, &GPIO_InitStructure);/* 配置SPI的 MOSI引脚*/GPIO_InitStructure.GPIO_Pin = FLASH_SPI_MOSI_PIN;GPIO_Init(FLASH_SPI_MOSI_PORT, &GPIO_InitStructure);/* 停止信号 FLASH: CS引脚高电平*/SPI_FLASH_CS_HIGH();/* SPI 模式配置 */// FLASH芯片 支持SPI模式0及模式3,据此设置CPOL CPHASPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;SPI_InitStructure.SPI_Mode = SPI_Mode_Master;SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;SPI_InitStructure.SPI_CRCPolynomial = 7;SPI_Init(FLASH_SPIx , &SPI_InitStructure);/* 使能 SPI  */SPI_Cmd(FLASH_SPIx , ENABLE);}

四、部分代码说明

1、接线引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.2、STM32F103C8T6+W25Q32 模块


#define      FLASH_SPIx                        SPI1
#define      FLASH_SPI_APBxClock_FUN          RCC_APB2PeriphClockCmd
#define      FLASH_SPI_CLK                     RCC_APB2Periph_SPI1//CS(NSS)引脚 片选选普通GPIO即可
#define      FLASH_SPI_CS_APBxClock_FUN       RCC_APB2PeriphClockCmd
#define      FLASH_SPI_CS_CLK                  RCC_APB2Periph_GPIOA    
#define      FLASH_SPI_CS_PORT                 GPIOA
#define      FLASH_SPI_CS_PIN                  GPIO_Pin_4//SCK引脚
#define      FLASH_SPI_SCK_APBxClock_FUN      RCC_APB2PeriphClockCmd
#define      FLASH_SPI_SCK_CLK                 RCC_APB2Periph_GPIOA   
#define      FLASH_SPI_SCK_PORT                GPIOA   
#define      FLASH_SPI_SCK_PIN                 GPIO_Pin_5
//MISO引脚
#define      FLASH_SPI_MISO_APBxClock_FUN     RCC_APB2PeriphClockCmd
#define      FLASH_SPI_MISO_CLK                RCC_APB2Periph_GPIOA    
#define      FLASH_SPI_MISO_PORT               GPIOA 
#define      FLASH_SPI_MISO_PIN                GPIO_Pin_6
//MOSI引脚
#define      FLASH_SPI_MOSI_APBxClock_FUN     RCC_APB2PeriphClockCmd
#define      FLASH_SPI_MOSI_CLK                RCC_APB2Periph_GPIOA    
#define      FLASH_SPI_MOSI_PORT               GPIOA 
#define      FLASH_SPI_MOSI_PIN                GPIO_Pin_7

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
资料获取 ( 滑到最后添加个人号)

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STM32F103C8T6

  
/************************************************************************************
//  功能描述   : W25Q32模块测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟72M
接线
W25Q32模块-------------------------------STM32F103C8T6
VCC------------------------------------3.3V
GND------------------------------------GND
CS-------------------------------------PA4 //
SCK------------------------------------PA5 //	
MISO-----------------------------------PA6 //	
MOSI-----------------------------------PA7 //	OLED0.96模块---------------------------STM32F103C8T6
VCC------------------------------------3.3V
GND------------------------------------GND
SCL------------------------------------PB8 //
SDA------------------------------------PB9 //	*************************************************************************************/

http://chatgpt.dhexx.cn/article/qLvbKVtl.shtml

相关文章

W25Q16编址详解

W25Q16是一款基于SPI接口Flash存储器。 但往往我们对一串长长的16进制地址无从下手,以至于数据存储位置不当。 先看一下官方的数据手册 看着比较乱,我们自己画一个思维导图帮助理解 可以看到W25Q16最大寻址范围为0x000000H~0x1FFFFFH ,根据…

rt-thread通过spi连接W25Q32后无法读取ID

注意,cs引脚必须由rtt控制,但是我这个cs引脚用的是PA15,它默认是jlink的引脚,所以首先要将jlink禁用,如下: rcu_periph_clock_enable(RCU_AF);rcu_periph_clock_enable(RCU_GPIOA);rcu_periph_clock_enable…

stm32 操作W25Q256 W25Q16 spi flash

硬件连接 今天我使用W25Q16做了一个测试,发现了W25Q16内部是一个环形缓冲区,在0x200000地址处写入数据,我可以在0x000000处读取到0x200000地址的数据,从这里就可以正面W25Q16是一个环形缓冲区的norfalsh 本函数库来自正点原子官…

W25Q32的使用

一、W25Q32简介 W25Q32是华邦公司推出的大容量“SPI FLASH” 产品。 1、容量 32M-Bit/4M-byte(4,194,304)2、存储结构 页:256-bytes扇区:4K-bytes块:64K_bytes是故: 页:16384个扇区:1024个块:64个3、速度 时钟速度最高:80MHz4、特性 擦除、写次数:高达100,000次数据保…

基于STM32实现W25Q16读写操作(spi)

文章目录 前言一、W25Q161.介绍2.SPI2.1. 简介2.2. 特性2.3. 功能说明2.4. 工作模式2.5. 引脚说明 二、代码开发1.SPI初始化2.读取厂商ID2.1.读写字节2.2.读取ID 3.其他的一些操作4.完整代码 三、效果演示 前言 在之前我们学习了flash闪存,这个更多的是内部数据存储…

GD32F303访问W25Q32异常问题解决

最近在使用国产化GD32F303替换STM32F103芯片,驱动代码使用的STM32的库函数,调试过程中发现MCU通过SPI访问W25Q32芯片时,会出现写入异常的情况,不是全部错误,是中间某段数据错误。 左侧:待写入文件内容 右侧…

stm32读写w25qxx

一,w25qxx简介。 二,stm32CubeIDE配置。 三,代码 1,w25qxx.c #include "W25Qxx.h"/*********************************************************************************** 函数功能: 模块初始化*/ uint8_t BSP_W25Qx_Init(void) …

STM32(八)W25Q(16/32/64/128)芯片学习总结

系列文章目录 文章目录 系列文章目录前言一、硬件和数据手册部分翻译1.W25Q64硬件设计2.数据手册解读 二、指令 前言 按项目需求,近期调试了W25Q32芯片,W25Q系列芯片是华邦公司推出的大容量SPI FLASH产品,W25Q32是3V,32M-bit 串行…

STC89C52驱动W25Q32测试笔记

STC89C52是经典的C51单片机,该芯片不自带硬件SPI接口,正好有手上一块W25Q32的存储模块(某宝上买的2.2元),试着使用89C52模拟SPI接口驱动W25Q32,在驱动的过程中遇到了几个问题,首先的问题是电平不…

SPI Flash芯片W25Q32英文版数据手册解读(二)---------存储器知识,寄存器

接着上一篇文章,由于W25Q32芯片是一个存储器芯片,先对这个芯片有关存储器的一些概念进行解读。 一、存储器相关知识 1、存储器的三个单位: 存储器三个等级:页(Page),扇区(sector&a…

SPI Flash芯片W25Q32英文版数据手册解读(一)---------引脚功能,工作模式

W25Q32芯片是一个可以通过SPI(串行外围设备接口)操作的flash存储器,这篇文章备忘和总结一下英文版数据手册的一些解读。有关时序及具体用STC单片机编写程序的内容等下一篇文章。 一、芯片引脚功能 我买的是8引脚、SOIC封装的芯片&#xff0…

w25q32 内存分布

说明 ESP826612F/E里面使用w25q32作为了flash存储. 提前说下哈,bit代表位 也就是 0 1 0 1 , Bit代表字节 ,一字节就是8位 w25q32的容量是32Mbit 也就是 32/8 4MB字节 4*1024 4096KB字节 然后 w25q32 这个芯片规定每 64KB字节作为一个块 所以呢w25q32总共分成了 4096…

基于STM32+SPI+W25Qxx存储芯片指令,时序和函数讲解

前言 本次我们学习一下STM32F103关于SPI对存储芯片的读写,介绍W25QXX芯片和对芯片内部讲解和代码解读,学习W25QXX芯片的各种读写指令,操作芯片读写,认识底层驱动,本篇内容主要目的是教会大家看手册写代码&#xf…

ButterKnife9.0.0-rc2 配置

升级了AndroidStudio到3.4之后,发现项目中的很多依赖库都不能用,原因是随着AS升级之后,Gradle随之升级到3.4.1,很多第三方库也需要更高版本的支撑,今天遇到ButterKnife失效的问题,原本是8.5.1的版本&#x…

How to install Bromine3 RC2

When I install Bromine RC2, I met bellow issues: “Server could not contact itself at the specified address: 127.0.0.1:80” “Error: Database table jobs for model job was not found.” etc. Now I show my exact way to install RC2 successfully: 1. Downl…

fabric1.4.0-rc2快速入门

软件环境 VMware 10.0.4 CentOS-7-x86_64-Minimal-1708 搭建过程 go安装 docker安装 docker-compose安装 一、fabric的编译和安装 1. 创建目录(GOPATH变量在安装go的时候就配置好了) mkdir -p $GOPATH/src/github.com/hyperledger 2. 下载fabri…

Cocos2d-JS v3.0 RC2发布说明

Cocos2d-JS是Cocos2d-x的Javascript版本,融合了Cocos2d-html5和Cocos2d-x JavaScript Bindings。它支持Cocos2d-x的所有特性并提供更简单易用的Javascript风格API。 核心特性 极大改进了ccui控件布局库的性能和稳定性,ccui在RC0中被大幅度重构&#xff0…

【GCC】1: RTCP RR接收端生成

m79 代码。参考bytewoods 大神的以下文章:WebRTC 基于GCC的拥塞控制(上) WebRTC 基于GCC的拥塞控制(下)虽然可以拿到估算的带宽但是rtcp 总是malformed packet个 有必要带着问题跟进下整个过程 RR报文 基于丢包率的码率控制运行在发送端,依靠RTCP RR报文进行工作。* report b…

STM32之RCC

STM32 RCC复位与时钟配置,我首先忽略掉复位,首先学习时钟配置,复位以后用到再学习 STM32有多个时钟源,分别是 HSI:上电默认启动,因精度不高所以先不采用,以后如果需要再使用 HSE:外部高速时钟&…

Apache ShardingSphere 4.0.0-RC2发布

处暑无三日,新凉直万金。处暑之日,Apache ShardingSphere 4.0.0-RC2已经发布,欢迎测试使用! 本次发布的4.0.0-RC2版本将前不久发布的4.0.0-RC1版本的核心功能不断打磨优化,修复社区反馈的问题,且持续进行微内核重构打磨;在社区建设…