Files
RCU_C1P_Module/MCU_Driver/inc/spi_flash.h
caocong cc8783e9f8 feat:新增TFTP IAP升级功能
修改事项:
1、新增TFTP IAP升级功能,只是代码移植完毕,没有测试使用
2、代码空间编译优化,零等待区域空间已满,而应用层代码已全部挪移到非零等待区域中,但还是会增加零等待区的空间占用。 待优化
2025-12-10 14:06:45 +08:00

68 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);
void SPI_FLASH_APP_Data_Erase(void);
void SPI_FLASH_Logic_File_Erase(void);
#endif /* MCU_DRIVER_INC_SPI_FLASH_H_ */