Files
TXH1.0/User/FRam/FRam.h
T

192 lines
6.3 KiB
C
Raw Permalink Normal View History

2026-04-27 16:55:02 +08:00
#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