You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.6 KiB
C

#ifndef SERIALFLASH_H
#define SERIALFLASH_H
#include <stdint.h>
//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