/* * 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_ */