#ifndef __HAL_GDFLASH_H__ #define __HAL_GDFLASH_H__ #include "Basedefine.h" # if 0 #define GDFLASH_SPI SPI1 #define DGFLASH_SPI_PORT GPIOA #define GDFLASH_GPIO_CLK RCC_AHBPeriph_GPIOA #define GDFLASH_CS_PIN GPIO_Pin_4 #define GDFLASH_SCK_PIN GPIO_Pin_5 #define DGFLASH_SPI_SCK_SOURCE GPIO_PinSource5 #define DGFLASH_SPI_SCK_AF GPIO_AF_0 #define GDFLASH_MISO_PIN GPIO_Pin_6 #define DGFLASH_SPI_MISO_SOURCE GPIO_PinSource6 #define DGFLASH_SPI_MISO_AF GPIO_AF_0 #define GDFLASH_MOSI_PIN GPIO_Pin_7 #define DGFLASH_SPI_MOSI_SOURCE GPIO_PinSource7 #define DGFLASH_SPI_MOSI_AF GPIO_AF_0 /* Select sRF: Chip Select pin low */ #define DGFLASH_CS_LOW() GPIO_ResetBits(DGFLASH_SPI_PORT, GDFLASH_CS_PIN) /* Deselect sRF: Chip Select pin high */ #define DGFLASH_CS_HIGH() GPIO_SetBits(DGFLASH_SPI_PORT, GDFLASH_CS_PIN) #endif #define GDFLASH_SPI SPI1 #define DGFLASH_SPI_SCK RCC_APB2Periph_SPI1 #define GDFLASH_CS_PIN GPIO_Pin_15 #define GDFLASH_CS_PORT GPIOA #define GDFLASH_CS_SCK RCC_APB2Periph_GPIOA #define GDFLASH_SCK_PIN GPIO_Pin_3 #define DGFLASH_SCK_PORT GPIOB #define DGFLASH_SCK_SCK RCC_APB2Periph_GPIOB #define GDFLASH_MISO_PIN GPIO_Pin_4 #define DGFLASH_MISO_PORT GPIOB #define DGFLASH_MISO_SCK RCC_APB2Periph_GPIOB #define GDFLASH_MOSI_PIN GPIO_Pin_5 #define DGFLASH_MOSI_PORT GPIOB #define DGFLASH_MOSI_SCK RCC_APB2Periph_GPIOB #if 0 /* Select sRF: Chip Select pin low */ #define DGFLASH_CS_LOW() GPIO_ResetBits(GDFLASH_CS_PORT, GDFLASH_CS_PIN) /* Deselect sRF: Chip Select pin high */ #define DGFLASH_CS_HIGH() GPIO_SetBits(GDFLASH_CS_PORT, GDFLASH_CS_PIN) #endif #define DGFLASH_DUMMY_BYTE 0xAA #define GDFLASH_WRITE_ENABLE 0x06 #define GDFLASH_WRITE_DISABLE 0x04 #define GDFLASH_READ_STATUS_REG 0x05 #define GDFLASH_WRITE_STATUS_REG 0x01 #define GDFLASH_READ_DATA 0x03 #define GDFLASH_FAST_READ 0x0b #define GDFLASH_DUAL_OUTPUT_FAST_READ 0x3b #define GDFLASH_PAGE_PROGRAM_02 0x02 #define GDFLASH_PAGE_PROGRAM_F2 0xF2 #define GDFLASH_SECTOR_ERASE 0x20 #define GDFLASH_BLOCK_ERASE_32 0x52 #define GDFLASH_BLOCK_ERASE_64 0xD8 #define GDFLASH_CHIP_ERASE 0x60 #define GDFLASH_DEEP_POWER_DOWN 0xB9 #define GDFLASH_RELEASE_FROM_DPD_AND_READ_DEVICE_ID 0xAB //两个靠参数的不同来实现不同的功能 #define GDFLASH_RELEASE_FROM_DPD 0xAB // #define GDFLASH_DEVICE_ID 0x90 #define GDFLASH_READ_IDENTIFICATION 0x9F typedef enum { SECTOR_ERASE = 0, BLOCK_ERASE_32K = 1, BLOCK_ERASE_64K = 2, CHIP_ERASE = 3, }GDFLASH_ERASE_TYPE; void GDflash_init(void); u8 GDflash_read_status_reg(void); void GDflash_write_enable(bool enable); void GDflash_test(void); void GDflash_128KByte_erase(void); void GDflash_read(u32 startAddr, u8 *buf, u32 length); void GDflash_write(u32 startAddr, u8 *buf, u32 length); void GDflash_erase(u32 startAddr, GDFLASH_ERASE_TYPE erase_type); #endif