void SPI_Flash_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)
SPI_FLASH_Write_SR(0x02);//使能状态寄存器中的写存储器
SST25V_DBSY();
SPI_FLASH_Write_SR(0x02);//使能状态寄存器中的写存储器
SST25V_DBSY();
实验目的:将数据写入外部FLASH中,然后再读出来显示在LCD上
实验平台:基于STM32F103C8T6的彩屏开发板
FLASH:SST25VF016B
flash_SST.c
#include "flash_SST.h"
#include "spi.h"
#include "delay.h"
//4Kbytes为一个Sector
//16个扇区为1个Block
//SST25VF016B
//容量为2M字节,共有32个Block(块),512个Sector(扇区)
//初始化SPI FLASH的IO口
//修改状态寄存器,允许芯片存储器被写
void SPI_Flash_Init(void)
{
RCC->APB2ENR|=1<<2; //PORTA时钟使能
GPIOA->CRH&=0XFFFFFF0F;
GPIOA->CRH|=0X00000030; //PA9 推挽
GPIOA->ODR|=1<<9; //PA9上拉
SPIx_Init(); //初始化SPI
SPI_FLASH_Write_SR(0x02); //使能状态寄存器中的写存储器
SST25V_DBSY();
}
//读取SPI_FLASH的状态寄存器
//BIT7 6 5 4 3 2 1 0
//SPR RV TB BP2 BP1 BP0 WEL BUSY
//SPR:默认0,状态寄存器保护位,配合WP使用
//TB,BP2,BP1,BP0:FLASH区域写保护设置
//WEL:写使能锁定
//BUSY:忙标记位(1,忙;0,空闲)
//默认:0x00
u8 SPI_Flash_ReadSR(void)
{
u8 byte=0;
SPI_FLASH_CS=0; //使能器件
SPIx_ReadWriteByte(SST25_ReadStatusReg); //发送读取状态寄存器命令
byte=SPIx_ReadWriteByte(0Xff); //读取一个字节
SPI_FLASH_CS=1; //取消片选
return byte;
}
//写SPI_FLASH状态寄存器
//只有SPR,TB,BP2,BP1,BP0(bit 7,5,4,3,2)可以写!!!
void SPI_FLASH_Write_SR(u8 sr)
{
SPI_FLASH_CS=0; //片选
SPIx_ReadWriteByte(SST25_EnableWriteStatusReg); //使能写状态寄存器命令
SPI_FLASH_CS=1; //取消片选
SPI_FLASH_CS=0; //片选
SPIx_ReadWriteByte(SST25_WriteStatusReg); //发送写取状态寄存器命令
SPIx_ReadWriteByte(sr); //写入一个字节
SPI_FLASH_CS=1; //取消片选
}
//SPI_FLASH写使能
//将WEL置位
void SPI_FLASH_Write_Enable(void)
{
SPI_FLASH_CS=0; //使能器件
SPIx_ReadWriteByte(SST25_WriteEnable); //发送写使能
SPI_FLASH_CS=1; //取消片选
}
//SPI_FLASH写禁止
//将WEL清零
void SPI_FLASH_Write_Disable(void)
{
SPI_FLASH_CS=0; //使能器件
SPIx_ReadWriteByte(SST25_WriteDisable); //发送写禁止指令
SPI_FLASH_CS=1; //取消片选
}
//读取芯片ID SST25VF016的是 0XBF41
u16 SPI_Flash_ReadID(void)
{
u16 Temp = 0;
SPI_FLASH_CS=0;
//发送读取ID命令
SPIx_ReadWri
相关推荐
STM32CubeMX实战:5分钟搞定W25Q128FV Flash芯片的SPI初始化与ID读取(含代码)
本文详细介绍了如何使用STM32CubeMX工具快速配置W25Q128FV Flash芯片的SPI通信,包括SPI外设参数设置、硬件引脚映射及JEDEC ID读取代码实现。通过HAL库和可视化配置,开发者可在5分钟内完成SPI初始化,大幅提升嵌入式开发效率。
STM32 SPI驱动W25Q80DV Flash详解:协议、寄存器与实战
SPI(串行外设接口)是一种高速同步串行通信协议,广泛应用于MCU与Flash、传感器等外设间的全双工数据交互。其核心原理基于主从架构、独立片选(CS)与可配置的时钟极性(CPOL)和相位(CPHA),形成Mode 0–3四种兼容模式,支撑灵活的硬件适配。技术价值体现在低开销、高带宽(可达36 MHz)及确定性时序,显著优于I²C等半双工总线。典型应用场景包括嵌入式系统中NOR Flash编程、SD卡控制及实时数据采集。本文以STM32F103驱动W25Q80DV为具体落点,深入解析SPI硬件架构、状态寄存
SST25VF016B SPI NOR Flash 驱动开发与下载失败排查实战
SPI NOR Flash 是嵌入式系统中常用的存储介质,具备字节读取、页写入和扇区擦除等特性。在驱动开发中,正确识别芯片ID是确保通信与编程算法匹配的第一步,而理解状态寄存器轮询、写使能指令及擦除对齐等原理,则是实现稳定读写的基础。文章以SST25VF016B为例,介绍从JEDEC ID读取、页写擦除到Keil编程算法配置的完整流程,并针对“target dll has been cancelled”等下载失败问题给出系统性排查思路。通过掌握这些方法,开发者可以快速定位硬件、时序或算法配置问题,提升固件烧
Keil下SST25VF016B SPI Flash驱动开发与实战
SPI Flash是嵌入式系统中常用的外部存储器件,因其接口简单、读写灵活,广泛应用于程序存储、参数保存和固件升级。其核心原理是通过SPI总线发送指令与地址,配合状态寄存器轮询完成擦除、编程等操作。与NAND Flash相比,NOR Flash具有字节随机读取、命令简洁、无需坏块管理等特点,特别适合中小容量、高可靠性的场景。在实际工程中,驱动编写的关键在于理解页编程的边界限制、扇区擦除的时序以及写使能流程。以一份Keil工程中的SST25VF016B驱动源码为实例,详细解析SPI Flash驱动设计要点,包
STM32单片机SPI驱动SST25V_Flash驱动程序
STM32单片机SPI驱动SST25V_Flash驱动程序
SST25VF016B的FLASH的SPI通信
根据野火及网络资源参考,编写的FLASH存储及读写。 需要注意: 1:在擦除区域时,是按照块擦除的,即每次4k。 2:在写时,若要断电存储,最好预留一部分作为存储存储信息,用来上电后读取。 3:硬件接口需要根据自己的硬件修改,如PA4、PE6。
STM32控制SST25VF016B
STM32读写SST25VF016B,正常读写
SST25VF016驱动程序_中文注释.txt
SST25VF016驱动程序_中文注释,SST25VF106是常用的FLASH
stm32 驱动sst25vf016b
结合网友自己整理的STM32 SPI2驱动sst25vf016b 的程序
SST25VF016B中文手册
SST25VF016B中文手册
SST25VF016B中文数据手册
FLASH芯片-SST25VF016B中文数据手册
【具身算法】VLA算法-Diffusion Policy
《扩散策略:多模态机器人控制的新方法》摘要 本文提出了一种基于扩散模型的机器人控制策略(DiffusionPolicy),用于解决视觉运动控制中的多模态行为、高维动作空间和训练稳定性问题。该方法利用去噪扩散概率模型(DDPM)生成动作序列,通过迭代优化处理复杂动作分布,显著提升了性能。实验表明,在15项机器人操作任务中,扩散策略平均性能提升46.9%,有效解决了传统显式/隐式策略的局限性。其核心优势在于:1)优雅建模多模态动作分布;2)适应高维动作空间;3)训练过程稳定。未来工作将探索与强化学习的结合及计算
别再乱点U盘里的.exe了!手把手教你彻底清除那个伪装成Usb Disk的蠕虫病毒
本文详细介绍了如何识别、清除和预防伪装成Usb Disk的蠕虫病毒。从识别感染迹象到安全备份文件,再到深度清理病毒残留和构建防护策略,提供了一套完整的U盘病毒解决方案。特别提醒用户注意U盘病毒的风险,并养成良好的使用习惯。
python爬取《你好, 李焕英》豆瓣评论数据
# 导入工具包 import requests from bs4 import BeautifulSoup import time import pandas as pd import numpy as np # 请求头 headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'} # =
Windows平台MuJoCo仿真环境配置与Qt集成实战
本文详细介绍了在Windows平台上配置MuJoCo物理仿真环境并与Qt框架集成的完整实战流程。内容涵盖从环境准备、库文件配置、项目创建到核心代码编写的每一步,重点解决了Windows下常见的编译链接错误和路径问题,帮助开发者在Windows系统中高效搭建机器人仿真与可视化控制开发环境。
【maven】idea左侧External Libraries里,没有Maven的依赖包 代码飘红
文章目录1.概述M.参考 1.概述 因为内网开发,然后这几天我被隔离了,然后公司搞了一个外网的vpn能连接的云桌面,云桌面也是网络隔离的,因此只能自己拷贝相关的文件到里面。 然后我就拷贝了代码和maven仓库中的一部分,因为本地的20G一次拷贝不完,需要多次拷贝,但是我拷贝了kafka,仍然飘红。具体如下 idea左侧External Libraries里,没有Maven的依赖包 然后整了很久都没搞定,后来我自己新建了一个项目,然后引入发现是不可以的,而且框框里面的飘红。 然后我就想是不是因为缺少依赖
3D打印开源硬件MKS Monster8 V2.0 原理图赏析--更新中
MKS MONSTER8 主板是创客基地为满足市场需求而推出的主板,可用于Voron 2.4机器安装,支Marlin 固件和Klipper固件,支持U盘打印(暂时只有Marlin固件支持),支持TMC驱动UART模式,它包含了3D打印机所需要的主要部件和接口,通过MCU集中控制,是一款功能强大的主板。下面详细分析一下。
PyCharm高效配置Gitee全攻略
本文介绍了如何在PyCharm和VS Code中配置Gitee插件并管理代码。主要内容包括:1) PyCharm连接Gitee的配置步骤;2) 代码拉取与冲突解决方法;3) VS Code界面功能区域详解;4) 完整的代码提交流程(暂存→提交→推送)。特别说明了VS Code中Git面板的使用方法,以及推送代码到Gitee远程仓库的具体操作步骤。文章还提供了解决代码冲突的建议和注意事项,帮助开发者更好地进行版本控制。
MDF和DHF、DMR、DHR三者差异?注册与备案文件?医疗器械产品技术要求编写指导原则
定义:设计历史文档(DHF ) 指的是描述某医疗器械成品设计过程的有关记录。内容:DHF包括设计开发活动的所有记录。从最初的策划、客户需求、设计输入,设计输出、设计验证、设计确认、所有的设计评审,设计转换,以及设计变更相关的所有记录。均属于DHF的一部分。要求:各制造商应为每个类型的器械建立并保持设计历史文件。设计历史文件应包含或引用必要的记录,以证实设计符合经批准的设计计划和法规的要求。
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版
Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
592



被折叠的 条评论
为什么被折叠?



