37 lines
1.5 KiB
C
37 lines
1.5 KiB
C
#ifndef __W25QXX_H
|
||
#define __W25QXX_H
|
||
|
||
#include "main.h"
|
||
|
||
#define Flash_CS_Pin GPIO_PIN_4
|
||
#define Flash_CS_Port GPIOA
|
||
|
||
|
||
|
||
#define CS_DISENABLE HAL_GPIO_WritePin(Flash_CS_Port, Flash_CS_Pin, GPIO_PIN_SET); //CS无效信号
|
||
#define CS_ENABLE HAL_GPIO_WritePin(Flash_CS_Port, Flash_CS_Pin, GPIO_PIN_RESET); //CS有效信号
|
||
|
||
#define W25QxxID 0XEF16 //W25Qxx ID
|
||
#define W25Qxx_WriteEnable 0x06 //写使能
|
||
#define W25Qxx_WriteDisable 0x04 //写禁止
|
||
#define W25Qxx_ReadStatusReg1 0x05 //读状态寄存器1指令
|
||
#define W25Qxx_SectorErase 0x20 //扇区(4KB)擦除指令
|
||
#define W25Qxx_BlockErase 0xD8 //块(64KB)擦除指令
|
||
#define W25Qxx_PageProgram 0x02 //页(256B)写入指令
|
||
#define W25Qxx_ReadData 0x03 //读数据指令
|
||
#define W25Qxx_Powerdown 0xB9 //Powerdown指令
|
||
|
||
void w25qxxInit(void); //函数声明,初始化W25Qxx
|
||
void w25qxxWriteEnable(void); //函数声明,W25Qxx擦写使能
|
||
void w25qxxWrite_Disable(void); //函数声明,W25Qxx擦写禁止
|
||
uint16_t w25qxxReadID(void); //函数声明,读取W25Qxx芯片ID
|
||
void w25qxxWaitBusy(void); //函数声明,W25Qxx等待空闲
|
||
void w25qxxErase_Sector(uint16_t); //函数声明,W25Qxx擦除一个扇区(4KB)
|
||
void w25qxxErase_Block(uint8_t); //函数声明,W25Qxx擦除一个块(64KB)
|
||
void w25qxxWrite_Page(uint8_t*, uint16_t); //函数声明,W25Qxx写入一页数据(256字节)
|
||
void w25qxxRead(uint8_t*,uint32_t,uint32_t); //函数声明,W25Qxx读取数据
|
||
|
||
#endif
|
||
|
||
|