Files
player/Project_App_Calendar/App_Src/drive/flash.h

108 lines
2.3 KiB
C
Raw Normal View History

2025-06-27 00:32:57 +08:00
#ifndef __FLASH_H
#define __FLASH_H
//////////////////////////////////////////////////////////////////////////////////
2025-07-05 19:47:28 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѧϰʹ<CFB0>ã<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>;
//ALIENTEKս<4B><D5BD>STM32<33><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//W25Q64 <20><><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>@ALIENTEK
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
//<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>:2012/9/9
//<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>˾ 2009-2019
2025-06-27 00:32:57 +08:00
//All rights reserved
//////////////////////////////////////////////////////////////////////////////////
#ifdef __cplusplus
extern "C" {
#endif
2025-07-05 19:47:28 +08:00
//W25Xϵ<58><CFB5>/Qϵ<51><CFB5>оƬ<D0BE>б<EFBFBD>
2025-06-27 00:32:57 +08:00
//W25Q80 ID 0XEF13
//W25Q16 ID 0XEF14
//W25Q32 ID 0XEF15
//W25Q32 ID 0XEF16
#define W25Q80 0XEF13
#define W25Q16 0XEF14
#define W25Q32 0XEF15
#define W25Q64 0XEF16
#define W25Q128 0XEF17
2025-07-05 19:47:28 +08:00
#define SPI_FLASH_TYPE SPI_Flash_GetType() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>flashоƬ<D0BE>ͺ<EFBFBD>
2025-06-27 00:32:57 +08:00
////////////////////////////////////////////////////////////////////////////
2025-07-05 19:47:28 +08:00
//ָ<><D6B8><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
#define W25X_WriteEnable 0x06
#define W25X_WriteDisable 0x04
#define W25X_ReadStatusReg 0x05
#define W25X_WriteStatusReg 0x01
#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
void SPI_Flash_Init(void);
2025-07-05 19:47:28 +08:00
u16 SPI_Flash_ReadID(void); //<2F><>ȡFLASH ID
u8 SPI_Flash_ReadSR(void); //<2F><>ȡ״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>
void SPI_FLASH_Write_SR(u8 sr); //д״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>
void SPI_FLASH_Write_Enable(void); //дʹ<D0B4><CAB9>
void SPI_FLASH_Write_Disable(void); //д<><D0B4><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
void SPI_Flash_Write_NoCheck(u8* pBuffer,u32 WriteAddr,u32 NumByteToWrite);
2025-07-05 19:47:28 +08:00
void SPI_Flash_Read(u8* pBuffer,u32 ReadAddr,u32 NumByteToRead); //<2F><>ȡflash
void SPI_Flash_Write(u8* pBuffer,u32 WriteAddr,u32 NumByteToWrite);//д<><D0B4>flash
void SPI_Flash_Erase_Chip(void); //<2F><>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
void SPI_Flash_Erase_Sector(u32 Dst_Addr);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SPI_Flash_Wait_Busy(void); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
void SPI_Flash_PowerDown(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
void SPI_Flash_WAKEUP(void); //<2F><><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
u16 SPI_Flash_GetType (void);
#ifdef __cplusplus
}
#endif
#endif