66 lines
2.1 KiB
C
66 lines
2.1 KiB
C
/*
|
|
* spi_flash.h
|
|
*
|
|
* Created on: May 20, 2025
|
|
* Author: cc
|
|
*/
|
|
|
|
#ifndef MCU_DRIVER_INC_SPI_FLASH_H_
|
|
#define MCU_DRIVER_INC_SPI_FLASH_H_
|
|
|
|
#include "ch564.h"
|
|
|
|
#define Flash_CS_H GPIOA_SetBits(GPIO_Pin_11)
|
|
#define Flash_CS_L GPIOA_ResetBits(GPIO_Pin_11)
|
|
|
|
#define Flash_ADDRESS_MAX 0x00200000
|
|
|
|
/***********Ö¸Áî±í**********/
|
|
//Read
|
|
#define P24Q40H_ReadData 0x03
|
|
#define P24Q40H_FastReadData 0x0B
|
|
#define P24Q40H_FastReadDual 0x3B
|
|
//Program and Erase
|
|
#define P24Q40H_PageErase 0x81
|
|
#define P24Q40H_SectorErase 0x20
|
|
#define P24Q40H_BlockErase 0xD8
|
|
#define P24Q40H_ChipErase 0xC7
|
|
#define P24Q40H_PageProgram 0x02
|
|
//Protection
|
|
#define P24Q40H_WriteEnable 0x06
|
|
#define P24Q40H_WriteDisable 0x04
|
|
//Status Register
|
|
#define P24Q40H_ReadStatusReg 0x05
|
|
#define P24Q40H_WriteStatusReg 0x01
|
|
//Other Commands
|
|
#define P24Q40H_PowerDown 0xB9
|
|
#define P24Q40H_ReleasePowerDown 0xAB
|
|
#define P24Q40H_ReadManufactureID 0x90
|
|
#define P24Q40H_ReadDeviceID 0x9F
|
|
#define P24Q40H_ResetEnable 0x66
|
|
#define P24Q40H_Reset 0x99
|
|
|
|
extern uint8_t Temp_Flash_Buff[4100];
|
|
|
|
void SPI_FLASH_Init(void);
|
|
uint8_t Flash_ReadSR(void);
|
|
void Flash_WriteSR(uint8_t sr_val);
|
|
void Flash_Write_Enable(void);
|
|
void Flash_Write_Disable(void);
|
|
uint16_t Flash_ReadID(void);
|
|
uint8_t Flash_Wait_Busy(void);
|
|
void Flash_PowerDown(void);
|
|
void Flash_Wakeup(void);
|
|
void Flash_Erase_Chip(void);
|
|
void Flash_Erase_Block(uint32_t BLK_ID);
|
|
void Flash_Erase_Sector(uint32_t DST_ID);
|
|
void Flash_Erase_Page(uint32_t Page_ID);
|
|
void Flash_Erase_Pageaddr(uint32_t Page_addr);
|
|
void Flash_Read(uint8_t* pBuffer,uint16_t NumByteToRead,uint32_t ReadAddr);
|
|
void Flash_Write_Page(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t writeAddr);
|
|
void Flash_Write_NoCheck(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t writeAddr);
|
|
void Flash_Write(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t WriteAddr);
|
|
|
|
|
|
#endif /* MCU_DRIVER_INC_SPI_FLASH_H_ */
|