Files
HBshuiwuConcentrator/shuangjia/hal_gdflash.h
2025-12-15 16:07:49 +08:00

109 lines
3.7 KiB
C

#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