K1Guitar/device/W25Q64/W25Q128.h

43 lines
1.6 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// File: w25q128.h
#ifndef __W25Q128_H
#define __W25Q128_H
#include <stdint.h>
#include "at32f403a_407.h"
// W25Q128 指令集
#define W25X_WriteEnable 0x06
#define W25X_WriteDisable 0x04
#define W25X_ReadStatusReg1 0x05
#define W25X_ReadStatusReg2 0x35
#define W25X_WriteStatusReg 0x01
#define W25X_PageProgram 0x02
#define W25X_QuadPageProgram 0x32
#define W25X_BlockErase64KB 0xD8
#define W25X_BlockErase32KB 0x52
#define W25X_SectorErase 0x20
#define W25X_ChipErase 0xC7
#define W25X_ChipErase2 0x60 // 另一种全片擦除命令
#define W25X_ReadData 0x03
#define W25X_FastRead 0x0B
#define W25X_ReadManufactID 0x90
#define W25X_ReleasePowerDown 0xAB
#define W25X_DeviceID 0xAB
#define W25X_ManufactDeviceID 0x90
#define W25X_JedecDeviceID 0x9F
#define W25X_ReadUniqueID 0x4B
#define W25X_EnterQPI 0x38
#define W25X_ExitQPI 0xFF
#define W25X_EnableReset 0x66
#define W25X_ResetDevice 0x99
// 函数声明
void W25Q128_Init(void); // 初始化(调用SPI初始化)
uint16_t W25Q128_ReadID(void); // 读取ID用于验证通信
void W25Q128_Read(uint8_t* pBuf, uint32_t ReadAddr, uint16_t NumByteToRead); // 读取数据
void W25Q128_Write(uint8_t* pBuf, uint32_t WriteAddr, uint16_t NumByteToWrite); // 写入数据(自动处理页写和擦除)
void W25Q128_Erase_Sector(uint32_t SectorAddr); // 擦除扇区(4KB)
void W25Q128_Erase_Chip(void); // 擦除整个芯片
#endif