96 lines
2.7 KiB
C
Raw Normal View History

2021-07-28 13:15:22 +08:00
#ifndef __NORFLASH_H
#define __NORFLASH_H
#include "sys.h"
//////////////////////////////////////////////////////////////////////////////////
/**********************************************************************/
//NOR FLASH(W25QXX) QPIģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/**********************************************************************/
//////////////////////////////////////////////////////////////////////////////////
//W25Xϵ<58><CFB5>/Qϵ<51><CFB5>оƬ<D0BE>б<EFBFBD>
//W25Q80 ID 0XEF13
//W25Q16 ID 0XEF14
//W25Q32 ID 0XEF15
//W25Q64 ID 0XEF16
//W25Q128 ID 0XEF17
//W25Q256 ID 0XEF18
#define W25Q80 0XEF13
#define W25Q16 0XEF14
#define W25Q32 0XEF15
#define W25Q64 0XEF16
#define W25Q128 0XEF17
#define W25Q256 0XEF18
extern u16 NORFLASH_TYPE; //<2F><><EFBFBD><EFBFBD>W25QXXоƬ<D0BE>ͺ<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_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_Enable4ByteAddr 0xB7
#define W25X_Exit4ByteAddr 0xE9
#define W25X_SetReadParam 0xC0
#define W25X_EnterQPIMode 0x38
#define W25X_ExitQPIMode 0xFF
void NORFLASH_Init(void); //<2F><>ʼ<EFBFBD><CABC>W25QXX
void NORFLASH_Qspi_Enable(void); //ʹ<><CAB9>QSPIģʽ
void NORFLASH_Qspi_Disable(void); //<2F>ر<EFBFBD>QSPIģʽ
u16 NORFLASH_ReadID(void); //<2F><>ȡFLASH ID
u8 NORFLASH_ReadSR(u8 regno); //<2F><>ȡ״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>
void NORFLASH_4ByteAddr_Enable(void); //ʹ<><CAB9>4<EFBFBD>ֽڵ<D6BD>ַģʽ
void NORFLASH_Write_SR(u8 regno,u8 sr); //д״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>
void NORFLASH_Write_Enable(void); //дʹ<D0B4><CAB9>
void NORFLASH_Write_Disable(void); //д<><D0B4><EFBFBD><EFBFBD>
void NORFLASH_Write_NoCheck(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite); //дflash,<2C><>У<EFBFBD><D0A3>
void NORFLASH_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead); //<2F><>ȡflash
void NORFLASH_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite); //д<><D0B4>flash
void NORFLASH_Erase_Chip(void); //<2F><>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
void NORFLASH_Erase_Sector(u32 Dst_Addr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void NORFLASH_Wait_Busy(void); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
#endif