Files

96 lines
2.7 KiB
C
Raw Permalink Normal View History

2026-04-27 16:55:02 +08:00
#ifndef _AT45DB_H_
#define _AT45DB_H_
/*H*****************************************************************************
* NAME: at45db.h
*******************************************************************************/
//*****************************************************************************
/*_____ M A C R O S __________________________________________________________*/
//端口定义
#define AT45DB_CS_EN GPIO_ResetBits(GPIOA, GPIO_Pin_4);GPIO_SetBits(GPIOA, GPIO_Pin_3);
#define AT45DB_CS_DIS GPIO_SetBits(GPIOA, GPIO_Pin_4);
//******************************************************************************
//
#define FLASH_APP_ADDR 0x08008000 //第一个应用程序起始地址(存放在FLASH)
#define RomUpDataAddr_Old 0
#define RomUpDataAddr_New 1024
#define FuniGlobal F_uniGlobal.u
//******************************************************************************
// AT45DB_DATA_MAP
#define checkLen_1 1 ///如果数据组带有校验,增加1byte
//存储器完好标致
///全局缓冲中的值
#define buf_ATDB45_Flag FuniGlobal.ATDB45_Flag
///结构体定义
#define ATDB45_Flag_FADR (0)
#define ATDB45_Flag_LEN (sizeof(buf_ATDB45_Flag) + checkLen_1)
#define ATDB45_Flag_Group 1 //组数
///全局缓冲中的值
#define buf_Frame FuniGlobal.Frame
///结构体定义
#define Frame_FADR (ATDB45_Flag_FADR + ATDB45_Flag_Group)
#define Frame_LEN sizeof(buf_Frame) + checkLen_1
#define Frame_Group 2048 //组数
///全局缓冲中的值
#define buf_PREXDATA FuniGlobal.PREXDATA
///结构体定义
#define PREXDATA_FADR (Frame_FADR + Frame_Group)
#define PREXDATA_LEN sizeof(buf_PREXDATA) + checkLen_1
#define PREXDATA_Group 2000 //组数
///全局缓冲中的值
#define buf_DeviceFrame FuniGlobal.Frame
///结构体定义
#define DeviceFrame_FADR (PREXDATA_FADR + PREXDATA_Group)
#define DeviceFrame_LEN sizeof(buf_DeviceFrame) + checkLen_1
#define DeviceFrame_Group 800*5 //组数
typedef struct
{
union
{
u8 Global[530]; //全局最大个数
u8 ATDB45_Flag;
u8 Frame[512];
PREXDATA_Type PREXDATA[5];
}u;
u8 CheckAdd;
}F_uniGlobal_Typedef; //存储器读写缓存共用体
typedef enum
{
CA_ATDB45_Flag,
CA_Frame,
CA_PREXDATA,
CA_DeviceFrame,
AT45DBItemEnd,
}AT45DBItem;
//********************************************************************************
typedef struct
{
u8* pInitData;//初始化指针
u8* upData; //共用体数据缓存区指针
u8* pData; //pGun数据指针
u32 firstAdr; //第一地址
u16 len; //长度
u16 Group;
u8 Tpye; //类型
}AT45DBDataIndex;
u8 AT45DBItemWrite(AT45DBItem Type, u16 Group);
u8 AT45DBItemRead(AT45DBItem Type, u16 Group);
void AT45DB_Data_Init(void);
void AT45DB_Init(void);
#endif