资源简介

stm32f405驱动W25N01G进行读写的demo,里面包含spi的配置和flash读写驱动以及w25n01g的原版芯片手册。

资源截图

代码片段和文件信息

/********************************* (C) COPYRIGHT 2019 曼珠沙华 ****************************************************
* File Name          : spi.c
* Author             : @曼珠沙华
* Date               : 2019/8/27
* Description        : spi file spi函数文件编写
*                     
* Includes ------------------------------------------------------------------*/
#include “flash.h“

u8 W25_BUFFER[4096];    //flash缓冲区大小定义

/***********************************************************************************************
**     name: flash_init
** function: 初始化flash W25N01GV模块
**parameter: void
**   return: void
**     date: 2019/8/27
**   create: @曼珠沙华
************************************************************************************************/
void flash_init(void){

SPI1_Init();                              //初始化spi1
SPI1_SetSpeed(SPI_BaudRatePrescaler_4); //设置为21M时钟高速模式 
FLASH_CS = 1;                             //拉高cs片选
W25_Reset();
delay_xms(20);
W25_WriteSR(Protection_Register0);       //SR1取消保护
delay_xms(20);

}

/***********************************************************************************************
**     name: W25_ReadSR
** function: 读取W25的状态寄存器
 BIT7   6      5     4     3       2       1    0
             NULL   LUT_F  ECC1  ECC0  P_FAIL  E_FAIL  WEL  BUSY
             WEL:写使能锁定
             BUSY:忙标记位(1忙;0空闲)
             默认:0x00
**parameter: sr 寄存器地址
**   return: 寄存器的值
**     date: 2019/8/27
**   create: @曼珠沙华
************************************************************************************************/
u8 W25_ReadSR(u8 sr){  

u8 byte = 0;  

FLASH_CS = 0;                            //使能器件 
  
SPI1_ReadWriteByte(W25X_ReadStatusReg);  //发送读取状态寄存器命令    
SPI1_ReadWriteByte(sr);                  //发送地址
byte = SPI1_ReadWriteByte(0Xff);         //读取一个字节  

FLASH_CS = 1;                            //取消片选 

return byte;   


/***********************************************************************************************
**     name: W25_WriteSR
** function: 写W25状态寄存器只有部分位可以写!!!
**parameter: sr 寄存器地址
 data 欲写入的值
**   return: void
**     date: 2019/8/27
**   create: @曼珠沙华
************************************************************************************************/
void W25_WriteSR(u8 sru8 data){   

FLASH_CS = 0;                              //使能器件 
  
SPI1_ReadWriteByte(W25X_WriteStatusReg);   //发送写状态寄存器命令    
SPI1_ReadWriteByte(sr);                    //发送地址  
SPI1_ReadWriteByte(data);                  //发送欲写入的值

FLASH_CS = 1;                              //取消片选            
}   
  
/***********************************************************************************************
**     name: W25_Reset
** function: 重启flash
**parameter: void
**   return: void
**     date: 2019/8/30
**   create: @曼珠沙华
************************************************************************************************/
void W25_Reset(v

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      13027  2019-09-19 14:11  W25N01G\flash.c

     文件       2562  2019-09-03 16:31  W25N01G\flash.h

     文件       5507  2019-09-03 16:00  W25N01G\spi.c

     文件        812  2019-08-27 16:00  W25N01G\spi.h

     文件    1186750  2019-04-08 21:54  W25N01G\W25N01GVZEIG.PDF

     目录          0  2020-03-20 17:59  W25N01G

----------- ---------  ---------- -----  ----

              1208658                    6


评论

共有 条评论