This commit is contained in:
Qiea
2024-12-19 14:06:05 +08:00
parent 1c0f3b676f
commit dcd484c1bd
58 changed files with 14859 additions and 863 deletions

View File

@@ -1,26 +1,29 @@
//-----------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
// W25QXX<58><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
// <20><> <20><>: <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>: 2018-08-04
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2018-08-04
// <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>:
// <20><>ǰ<EFBFBD>汾: V1.0
// <20><>ʷ<EFBFBD>汾:
// - V1.0: (2018-08-04)W25QXX<58><58>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>: <20><><EFBFBD><EFBFBD>STM32F429+CycloneIV<49><56><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD>塢LZE_ST_LINK2
// ˵ <20><>:
//
//-----------------------------------------------------------------
#ifndef __W25QXX_H
#define __W25QXX_H
#include "sys.h"
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>ѧϰʹ<EFBFBD>ã<EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD>;
//ALIENTEK STM32F429<32><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//W25QXX<58><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>@ALIENTEK
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:2016/1/16
//<2F><EFBFBD><E6B1BE>V1.0
//<2F><>Ȩ<EFBFBD><C8A8><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
//Copyright(C) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿƼ<D3BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾ 2014-2024
//All rights reserved
//////////////////////////////////////////////////////////////////////////////////
#include "stm32f429_winner.h"
//-----------------------------------------------------------------
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-----------------------------------------------------------------
extern u16 W25QXX_TYPE; // <20><><EFBFBD><EFBFBD>W25QXXоƬ<D0BE>ͺ<EFBFBD>
//W25Xϵ<EFBFBD><EFBFBD>/Qϵ<51><CFB5>оƬ<D0BE>б<EFBFBD>
//W25Q80 ID 0XEF13
//W25Q16 ID 0XEF14
//W25Q32 ID 0XEF15
//W25Q64 ID 0XEF16
//W25Q128 ID 0XEF17
//W25Q256 ID 0XEF18
//-----------------------------------------------------------------
// <20><EFBFBD><EAB6A8>
//-----------------------------------------------------------------
// W25<EFBFBD><EFBFBD>/Qϵ<51><CFB5>оƬ<D0BE>б<EFBFBD>
#define W25Q80 0XEF13
#define W25Q16 0XEF14
#define W25Q32 0XEF15
@@ -28,49 +31,50 @@
#define W25Q128 0XEF17
#define W25Q256 0XEF18
extern u16 W25QXX_TYPE; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>W25QXXоƬ<EFBFBD>ͺ<EFBFBD>
#define W25QXX_CS PGout(3) // W25QXX<EFBFBD><EFBFBD>Ƭѡ<EFBFBD>ź<EFBFBD>
#define W25QXX_CS PFout(6) //W25QXX<58><58>Ƭѡ<C6AC>ź<EFBFBD>
//////////////////////////////////////////////////////////////////////////////////
//ָ<><D6B8><EFBFBD><EFBFBD>
#define W25X_WriteEnable 0x06
#define W25X_WriteDisable 0x04
#define W25X_ReadStatusReg1 0x05
#define W25X_ReadStatusReg2 0x35
#define W25X_ReadStatusReg3 0x15
#define W25X_WriteEnable 0x06
#define W25X_WriteDisable 0x04
#define W25X_ReadStatusReg1 0x05
#define W25X_ReadStatusReg2 0x35
#define W25X_ReadStatusReg3 0x15
#define W25X_WriteStatusReg1 0x01
#define W25X_WriteStatusReg2 0x31
#define W25X_WriteStatusReg3 0x11
#define W25X_ReadData 0x03
#define W25X_FastReadData 0x0B
#define W25X_FastReadDual 0x3B
#define W25X_PageProgram 0x02
#define W25X_BlockErase 0xD8
#define W25X_SectorErase 0x20
#define W25X_ChipErase 0xC7
#define W25X_PowerDown 0xB9
#define W25X_ReleasePowerDown 0xAB
#define W25X_DeviceID 0xAB
#define W25X_ManufactDeviceID 0x90
#define W25X_JedecDeviceID 0x9F
#define W25X_ReadData 0x03
#define W25X_FastReadData 0x0B
#define W25X_FastReadDual 0x3B
#define W25X_PageProgram 0x02
#define W25X_BlockErase 0xD8
#define W25X_SectorErase 0x20
#define W25X_ChipErase 0xC7
#define W25X_PowerDown 0xB9
#define W25X_ReleasePowerDown 0xAB
#define W25X_DeviceID 0xAB
#define W25X_ManufactDeviceID 0x90
#define W25X_JedecDeviceID 0x9F
#define W25X_Enable4ByteAddr 0xB7
#define W25X_Exit4ByteAddr 0xE9
void W25QXX_Init(void);
u16 W25QXX_ReadID(void); //<2F><>ȡFLASH ID
u8 W25QXX_ReadSR(u8 regno); //<2F><>ȡ״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>
void W25QXX_4ByteAddr_Enable(void); //ʹ<EFBFBD><EFBFBD>4<EFBFBD>ֽڵ<EFBFBD>ַģʽ
void W25QXX_Write_SR(u8 regno,u8 sr); //д״̬<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
void W25QXX_Write_Enable(void); //дʹ<EFBFBD><EFBFBD>
void W25QXX_Write_Disable(void); //д<><EFBFBD><EFBFBD><EFBFBD>
void W25QXX_Write_NoCheck(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite);
void W25QXX_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead); //<2F><>ȡflash
void W25QXX_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite);//д<><D0B4>flash
void W25QXX_Erase_Chip(void); //<2F><>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
void W25QXX_Erase_Sector(u32 Dst_Addr); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void W25QXX_Wait_Busy(void); //<EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void W25QXX_PowerDown(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
void W25QXX_WAKEUP(void); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-----------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-----------------------------------------------------------------
extern void W25QXX_Init(void);
extern u16 W25QXX_ReadID(void); // <EFBFBD><EFBFBD>ȡFLASH ID
extern u8 W25QXX_ReadSR(u8 regno); // <20><>ȡ״̬<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
extern void W25QXX_4ByteAddr_Enable(void); // ʹ<EFBFBD><EFBFBD>4<EFBFBD>ֽڵ<EFBFBD>ַģʽ
extern void W25QXX_Write_SR(u8 regno,u8 sr); // д״̬<D7B4>Ĵ<EFBFBD><EFBFBD><EFBFBD>
extern void W25QXX_Write_Enable(void); // дʹ<D0B4><CAB9>
extern void W25QXX_Write_Disable(void); // д<><D0B4><EFBFBD><EFBFBD>
extern void W25QXX_Write_NoCheck(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite);
extern void W25QXX_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead); // <20><>ȡflash
extern void W25QXX_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite);// д<><D0B4>flash
extern void W25QXX_Erase_Chip(void); // <20><>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern void W25QXX_Erase_Sector(u32 Dst_Addr); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern void W25QXX_Wait_Busy(void); // <20>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern void W25QXX_PowerDown(void); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
extern void W25QXX_WAKEUP(void); // <20><><EFBFBD><EFBFBD>
#endif
//-----------------------------------------------------------------
// End Of File
//-----------------------------------------------------------------