Files
SM-1000M/RTX5_20220316/Driver/eeprom/eeprom.h
2026-04-23 10:50:18 +08:00

103 lines
4.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _eeprom_H
#define _eeprom_H
#include "bsp.h"
#include "stm32l1xx_flash.h"
/****************定义EEPROM的存储内容*************
名称 地址 默认值
IOT-IP 0-19 219.238.240.58 (远程TCPSERVER地址)
IOT-PORT 20-29 9022 (远程TCPSERVER端口)
WIFI-PORT 30-39 8080 (WIFI本地端口)
WIFI名称 40-59 lica_esp8266 说明未提到多少位程序规定最多20
WIFI密码 60-69 12345678 最少8位密码最大64位程序规定为10位
测量间隔 100-105 600S 范围0-86400 0-24H
数据传输模式 110-119 暂未使用
数据上传时间 120-129 00000 小时+分钟默认为0及测试完毕立即上传如果小时大于23为立即上传
设备ID 130-139 暂定设备ID号为10位
设备参数标志 140 1已经有设备参数 0无
预约测量时间 150-165 ddhhmmss
测试模式 166 0 间隔测量模式1预约测量模式预约时间>24H无效进入间隔测量
系统时间千百位 170-171
TF卡上传起始位置 180-183
参数修改标志 185 参数被修改后该标志置1
远传文件表头发送标志 186 发送表头后该标志置1
远传文件表头发送日 187
IAP升级标志 189-190 0无程序更新 1有程序更新 1
IAP软件版本号 190-209 主板+软件日期+日期的第几版 V1.0_20220309_99
APP软件版本号 210-239 主板+软件日期+日期的第几版 V1.0_20220309_99
IOT-Username 240-259 服务器用户名
IOT-Password 260-279 服务器密码
IOT-Theme-name 280-299 订阅主题名称
***************************************/
#define PEKEY1 0x89ABCDEF //FLASH_PEKEYR
#define PEKEY2 0x02030405 //FLASH_PEKEYR
#define EEPROM_BASE_ADDR 0x08080000
#define EEPROM_BYTE_SIZE 0x3000 //12keeprom存储空间 12288个字节
#define EN_INT __enable_irq(); //系统开全局中断
#define DIS_INT __disable_irq(); //系统关全局中断
#define Bc25_Ip_len 20
#define Bc25_Port_len 10
#define ESP8266_AP_SSIDs_len 20
#define ESP8266_AP_Ports_len 10
#define ESP8266_AP_PWDs_len 20
#define Measure_Interval_len 6
#define Pub_Mode_len 5
#define Pub_Time_len 6
#define Equipment_ID_len 10
#define appointment_time_len 15
#define measure_mode_len 2
#define par_change_len 1
#define IOT_Username_len 20
#define IOT_Password_len 20
#define IOT_Theme_name_len 20
void EEPROM_ReadBytes(u16 Addr,u8 *Buffer,u16 Length);
void EEPROM_ReadWords(u16 Addr,u16 *Buffer,u16 Length);
void EEPROM_WriteBytes(u16 Addr,u8 *Buffer,u16 Length);
void EEPROM_WriteWords(u16 Addr,u16 *Buffer,u16 Length);
void EEPROM_ReadDWords(u16 Addr,u32 *Buffer,u16 Length);
void EEPROM_WriteDWords(u16 Addr,u32 *Buffer,u16 Length);
void Clear_eeprom_par(void);
u32 get_meaidv(void);
u32 get_pubidv(void);
//定义设备初始化及外部设置的参数
typedef struct
{
char Bc25_Ip[Bc25_Ip_len]; //远程传输设备IP
char Bc25_Port[Bc25_Port_len]; //远程传输端口
char ESP8266_AP_SSIDs[ESP8266_AP_SSIDs_len];//WIFI名称
char ESP8266_AP_Ports[ESP8266_AP_Ports_len];//WIFI端口
char ESP8266_AP_PWDs[ESP8266_AP_PWDs_len];//WiFi密码
char Measure_Interval[Measure_Interval_len];//测量间隔
char Pub_Mode[Pub_Mode_len];//暂未使用
char Pub_Time[Pub_Time_len];//数据上传间隔-更改为数据远传间隔单位S
char Equipment_ID[Equipment_ID_len]; //设备编号
// char Equipment_ID_WKUP[2];
char appointment_time[appointment_time_len];//预约测量时间 更改为: yyyymmDDHHMMSS
char measure_mode[measure_mode_len];
uint8_t par_change;
uint8_t Bc25_Send_Header;
char IOT_Username[IOT_Username_len]; //服务器用户名
char IOT_Password[IOT_Password_len]; //服务器密码
char IOT_Theme_name[IOT_Theme_name_len];//订阅主题名称
}Init_Data;
extern Init_Data Init_Datas;
extern Init_Data Init_Data_Equipment;
Init_Data Read_Equipment_Par(void);
void Write_Equipment_Par(Init_Data Init_Data_Equipmend);
void clear_Init_Data_Equipment(void);
void Write_Factory_Par(void);//恢复出厂设置参数
u16 hexToDec(char *shex);
#endif