#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升级标志 188 0无程序更新 1有程序更新 1 IAP软件版本号 190-209 主板+软件日期+日期的第几版 V1.0_20220309_99 APP软件版本号 210-239 主板+软件日期+日期的第几版 V1.0_20220309_99 ***************************************/ #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 10 #define Measure_Interval_len 6 #define Pub_Mode_len 5 #define Pub_Time_len 10 #define Equipment_ID_len 10 #define appointment_time_len 9 #define measure_mode_len 2 #define IAP_Flag_1 1 //有文件更新 #define IAP_Flag_0 0 //无文件更新 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); //定义设备初始化及外部设置的参数 typedef struct { char Bc25_Ip[20]; //远程传输设备IP char Bc25_Port[10]; //远程传输端口 char ESP8266_AP_SSIDs[20];//WIFI名称 char ESP8266_AP_Ports[10];//WIFI端口 char ESP8266_AP_PWDs[10];//WiFi密码 char Measure_Interval[Measure_Interval_len];//测量间隔 char Pub_Mode[5];//暂未使用 char Pub_Time[10];//数据上传间隔-更改为数据远传间隔,单位S char Equipment_ID[10]; //设备编号 // char Equipment_ID_WKUP[2]; char appointment_time[9];//预约测量时间 更改为: DDHHMMSS char measure_mode[2]; }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);//恢复出厂设置参数 #endif