#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