#ifndef SERIALFLASH_H #define SERIALFLASH_H #include //flash size #define ADDR4_MODE 0 //flash大于128Mbit需要进入4地址模式 #define FLASH_SPI_CLOCK_EN() __HAL_RCC_SPI1_CLK_ENABLE() #define FLASH_CS_PORT GPIOA #define FLASH_CS_PIN GPIO_PIN_4 #define FLASH_CLK_PORT GPIOA #define FLASH_CLK_PIN GPIO_PIN_5 #define FLASH_MOSI_PORT GPIOA #define FLASH_MOSI_PIN GPIO_PIN_7 #define FLASH_MISO_PORT GPIOA #define FLASH_MISO_PIN GPIO_PIN_6 #define FLASH_SPI SPI1 #define FLASH_SPI_AF GPIO_AF3_SPI1 #define FLASH_CS_H() HAL_GPIO_WritePin(FLASH_CS_PORT, FLASH_CS_PIN, GPIO_PIN_SET); #define FLASH_CS_L() HAL_GPIO_WritePin(FLASH_CS_PORT, FLASH_CS_PIN, GPIO_PIN_RESET); void P25QXX_Gpio_Init(void); void fly_flash_init(void); uint32_t fy_flash_readid(void); void fy_flash_read(uint32_t address24, uint8_t* buffer, uint32_t length); void fy_flash_readdma(uint32_t address24, uint8_t* buffer, uint32_t length); void fy_flash_erase(); void fy_flash_erase_block(uint32_t start,uint32_t sizeOfBitmaps); void fy_flash_page_write(uint32_t addr,uint8_t* data,uint32_t size); uint32_t fy_flash_isreceiveing(void); void fy_flash_waitreceive_done(void); void fy_flash_dmainit(void); void SerialFlash_EraseSize(uint32_t startaddr,uint32_t size); void SerialFlash_ProgramInfo(uint32_t addr,uint8_t* data,uint32_t size); void SerialFlash_ReadData(uint32_t address24, uint8_t* buffer, uint32_t length); void Flash_Test_DMA(void); void DataReader_DMACallback(); extern SPI_HandleTypeDef FlashSpiHandle; extern DMA_HandleTypeDef HdmaCh4; extern DMA_HandleTypeDef HdmaCh3; #endif //SERIALFLASH_H