#ifndef _EEPROM_H_ #define _EEPROM_H_ #include "apt32f102.h" /*地址范围:0x10000000~0x100007FF,DROM 每页64BYTE,按页分配*/ #define EEPROM_MCUDevInfo_Address 0x10000000 //MCU 设备信息地址固定为0x10000000,大小为0x40 此区域不可改动 /*APP*/ #define EEPROM_ParaInfo_Address 0x10000100 #define EEPROM_TOUCHPARA1_SaveAddr 0x10000200 #define EEPROM_TOUCHPARA2_SaveAddr 0x10000280 #define EEPROM_TOUCHPARA3_SaveAddr 0x10000300 /* EEPROM 保存数据格式: * FLAG - 1Byte 保存标志位 * LEN - 2Byte 保存数据长度 * CHECK - 1Byte 保存数据校验 * DATA - nByte 保存数据内容 * * */ /*APP*/ #define EEPROM_APP_SVAE_FLAG 0xA6 #define EEPROM_APP_DATA_Size_Max 100 //目前保存数据内容最长为100Byte //#define EEPROM_PARA_Size 50 #define EEPROM_Offset_SaveFlag 0x00 #define EEPROM_Offset_Datalen 0x01 #define EEPROM_Offset_Check 0x03 #define EEPROM_Offset_Data 0x04 #define EEPROM_TempDifference_Default 0x09 //温差 - 默认为0x09 #define EEPROM_TempSelect_Default 0x00 //温度显示 - 默认摄氏度 #define EEPROM_TouchLevel_Default 0x01 //触摸按键等级 - 默认为0x01 中灵敏度 #define EEPROM_LangueSelect_Default 0x00 //显示语言 - 默认0x00中英文混合 #define ACTIVE_PORT 0x02 //主动端口 #define POLLING_PORT 0x01 //轮训端口 /*boot*/ #define EEPROM_SVAE_FLAG 0xAE #define EEPROM_DATA_Size_Max 0x40 //目前保存数据内容最长为100Byte #define EEPROM_PARA_Size 50 #define EEPROM_DEV_NAME_Size 32 typedef struct{ U8_T dev_addr; //设备地址 U8_T pipe_flag; //管制选择 U8_T temp_diff; //温差 0~18 U8_T temp_select; //温度显示单位选择 0x00:摄氏度 0x01:华氏度 U8_T backlight_en; //背光延时关闭标记 0x00:延时关 0x01:延时关闭开 U8_T key_sens_level; //按键灵敏度 U8_T langue_select; //设置显示语言 U8_T dev_port; //设备处于RCU的端口类型 1:轮训端口 2:主动端口 2024-12-16增加 }E_PARA_INFO; typedef struct{ U8_T dev_addr; //设备地址 U8_T dev_type; //设备类型 U8_T dev_boot_ver; //设备Boot的软件版本号 U8_T dev_app_ver; //设备APP的软件版本号 U8_T dev_name_len; //设备名称的长度 U8_T dev_name[EEPROM_DEV_NAME_Size]; //设备名称 }E_MCU_DEV_INFO; extern E_MCU_DEV_INFO g_mcu_dev; extern E_PARA_INFO g_eeprom; void EEPROM_Init(void); U8_T EEPROM_CheckSum(U8_T *data,U16_T len); U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info); U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info); U8_T EEPROM_ClearParaInfo(void); U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info); void EEPROM_Default_ParaInfo(E_PARA_INFO *info); /*boot*/ U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info); U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info); void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info); void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info); #endif