Files
RS485_T1_Transition/Source/SYSTEM/inc/eeprom.h

94 lines
3.0 KiB
C
Raw Normal View History

#ifndef _EEPROM_H_
#define _EEPROM_H_
#include "apt32f102.h"
/*地址范围0x10000000~0x100007FFDROM 每页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