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
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
|