#ifndef _FRam_H_ #define _FRam_H_ /****************************************************************************** * NAME: fRam.h *******************************************************************************/ /*_____ M A C R O S __________________________________________________________*/ //端口 #define FM_CS_EN GPIO_ResetBits(GPIOA, GPIO_Pin_3);GPIO_SetBits(GPIOA, GPIO_Pin_4); #define FM_CS_DIS GPIO_SetBits(GPIOA, GPIO_Pin_3); //FM 命令 #define FM_WREN 0X06 //读写使能 #define FM_READ 0X03 //读命令 #define FM_WRITE 0X02 //写命令 #define CLI() __set_PRIMASK(1) #define SEI() __set_PRIMASK(0) /*_____ M A C R O S __________________________________________________________*/ //CONFIG(配置) #define FRAM_SPACE_SIZE (0X800) ///定义铁电最大保存容量 #define FristStart_Addr 100 //****************************************************************************** // 存储器内容 #define uniGlobal s_uniGlobal.u #define checkLen_1 1 ///如果数据组带有校验,增加1byte //****************************************************************************** // FRAM_DATA_MAP //加密验证数据 ///全局缓冲中的值 ///结构体定义 #define Encryption_FADR (80) //存储器完好标致 ///全局缓冲中的值 #define buf_FRam_Flag uniGlobal.FRam_Flag ///结构体定义 #define FRam_Flag_FADR (FristStart_Addr) #define FRam_Flag_LEN (sizeof(buf_FRam_Flag) + checkLen_1) #define FRam_Flag_Group 1 //组数 ///全局缓冲中的值 #define buf_ROM_UpData uniGlobal.ROM_UpData ///结构体定义 #define ROM_UpData_FADR (FRam_Flag_FADR + FRam_Flag_LEN * FRam_Flag_Group) #define ROM_UpData_LEN (sizeof(buf_ROM_UpData) + checkLen_1) #define ROM_UpData_Group 1 //组数 //员工数据 ///全局缓冲中的值 #define buf_MD_Port_Data uniGlobal.MD_Port_Data ///结构体定义 #define MD_Port_Data_FADR (ROM_UpData_FADR + ROM_UpData_LEN * ROM_UpData_Group) #define MD_Port_Data_LEN (sizeof(buf_MD_Port_Data) + checkLen_1) #define MD_Port_Data_Group 4 //组数 //员工数据 ///全局缓冲中的值 #define buf_POSData uniGlobal.POSData ///结构体定义 #define POSData_FADR (MD_Port_Data_FADR + MD_Port_Data_LEN * MD_Port_Data_Group) #define POSData_LEN (sizeof(buf_POSData) + checkLen_1) #define POSData_Group 1 //组数 //员工数据 ///全局缓冲中的值 #define buf_MD_Port_Num_Top uniGlobal.MD_Port_Num_Top ///结构体定义 #define MD_Port_Num_Top_FADR (POSData_FADR + POSData_LEN * POSData_Group) #define MD_Port_Num_Top_LEN (sizeof(buf_MD_Port_Num_Top) + checkLen_1) #define MD_Port_Num_Top_Group 1 //组数 ///全局缓冲中的值 #define buf_PREXDATA_WaitUpNummber uniGlobal.PREXDATA_WaitUpNummber ///结构体定义 #define PREXDATA_WaitUpNummber_FADR (MD_Port_Num_Top_FADR + MD_Port_Num_Top_LEN * MD_Port_Num_Top_Group) #define PREXDATA_WaitUpNummber_LEN (sizeof(buf_PREXDATA_WaitUpNummber) + checkLen_1) #define PREXDATA_WaitUpNummber_Group 1 //组数 ///全局缓冲中的值 #define buf_PREXDATA_TTC uniGlobal.PREXDATA_TTC ///结构体定义 #define PREXDATA_TTC_FADR (PREXDATA_WaitUpNummber_FADR + PREXDATA_WaitUpNummber_LEN * PREXDATA_WaitUpNummber_Group) #define PREXDATA_TTC_LEN (sizeof(buf_PREXDATA_TTC) + checkLen_1) #define PREXDATA_TTC_Group 1 //组数 ///全局缓冲中的值 #define buf_PrintInfo uniGlobal.PrintInfo ///结构体定义 #define PrintInfo_FADR (PREXDATA_TTC_FADR + PREXDATA_TTC_LEN * PREXDATA_TTC_Group) #define PrintInfo_LEN (sizeof(buf_PrintInfo) + checkLen_1) #define PrintInfo_Group 1 //组数 ///全局缓冲中的值 #define buf_PrintLastRecord uniGlobal.PrintLastRecord ///结构体定义 #define PrintLastRecord_FADR (PrintInfo_FADR + PrintInfo_LEN * PrintInfo_Group) #define PrintLastRecord_LEN (sizeof(buf_PrintLastRecord) + checkLen_1) #define PrintLastRecord_Group 64 //组数 ///全局缓冲中的值 #define buf_POSNetSetState uniGlobal.POSNetSetState ///结构体定义 #define POSNetSetState_FADR (PrintLastRecord_FADR + PrintLastRecord_LEN * PrintLastRecord_Group) #define POSNetSetState_LEN (sizeof(buf_POSNetSetState) + checkLen_1) #define POSNetSetState_Group 1 //组数 ///全局缓冲中的值 #define buf_MD_Multiplex_Port_Data uniGlobal.MD_Multiplex_Port_Data ///结构体定义 #define MD_Multiplex_Port_Data_FADR (POSNetSetState_FADR + POSNetSetState_LEN * POSNetSetState_Group) #define MD_Multiplex_Port_Data_LEN (sizeof(buf_MD_Multiplex_Port_Data) + checkLen_1) #define MD_Multiplex_Port_Data_Group 1 //组数 ///全局缓冲中的值 #define buf_WhiteList uniGlobal.WhiteList ///结构体定义 #define WhiteList_FADR (MD_Multiplex_Port_Data_FADR + MD_Multiplex_Port_Data_LEN * MD_Multiplex_Port_Data_Group) #define WhiteList_LEN (sizeof(buf_WhiteList) + checkLen_1) #define WhiteList_Group 1 //组数 ///全局缓冲中的值 #define buf_PREXDATA_Upload uniGlobal.PREXDATA_Upload ///结构体定义 #define PREXDATA_Upload_FADR (WhiteList_FADR + WhiteList_LEN * WhiteList_Group) #define PREXDATA_Upload_LEN (sizeof(buf_PREXDATA_Upload) + checkLen_1) #define PREXDATA_Upload_Group 1 //组数 typedef struct { union { u8 Global[1000]; //全局最大个数 u8 FRam_Flag; MD_Port_Data_Type MD_Port_Data; POSData_Type POSData; u8 MD_Port_Num_Top; ROM_UpData_Type ROM_UpData; u32 PREXDATA_WaitUpNummber; u32 PREXDATA_TTC; PrintInfo_Type PrintInfo; PREXDATA_Type PrintLastRecord;//越南打印每把枪最后一笔数据 POSNetSetState_TypeDef POSNetSetState; MD_Multiplex_Port_Data_Type MD_Multiplex_Port_Data;//端口5,多路复用口 WhiteList_Type WhiteList; PREXDATA_Upload_Type PREXDATA_Upload; }u; u8 CheckAdd; }s_uniGlobal_Typedef; //存储器读写缓存共用体 typedef enum { CF_FRam_Flag, CF_ROM_UpData, CF_MD_Port_Data, CF_POSData, CF_MD_Port_Num_Top, CF_PREXDATA_WaitUpNummber, CF_PREXDATA_TTC, CF_PrintInfo, CF_PrintLastRecord, CF_POSNetSetState, CF_MD_Multiplex_Port_Data, CF_WhiteList, CF_PREXDATA_Upload, FramItemEnd, }FramItem; //******************************************************************************** typedef struct { u8* pInitData;//初始化指针 u8* upData; //共用体数据缓存区指针 u8* pData; //pGun数据指针 u32 firstAdr; //第一地址 u16 len; //长度 u16 Group; u8 Tpye; //类型 }framDataIndex; void FM_Init(void); u8 FMItemWrite(FramItem Type, u16 Group); u8 FMItemRead(FramItem Type, u16 Group); void FM_Data_Init(void); void PCBEncryption(void); void PCBEncryption_Check(void); #endif