This commit is contained in:
2026-04-23 10:50:18 +08:00
commit a436fda935
844 changed files with 272643 additions and 0 deletions

View File

@ -0,0 +1,327 @@
/*
*********************************************************************************
ͷ<>ļ<EFBFBD>
*********************************************************************************
*/
#include "eeprom.h"
#include "bsp.h"
#include "stm32l1xx_flash.h"
/*
************************************************************************************
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
************************************************************************************
*/
Init_Data Init_Data_Equipment;
/*------------------------------------------------------------
Func: EEPROM<4F><4D><EFBFBD>ݰ<EFBFBD><DDB0>ֽڶ<D6BD><DAB6><EFBFBD>
Note:
-------------------------------------------------------------*/
void EEPROM_ReadBytes(u16 Addr,u8 *Buffer,u16 Length)
{
u8 *wAddr;
wAddr=(u8 *)(EEPROM_BASE_ADDR+Addr);
while(Length--){
*Buffer++=*wAddr++;
}
}
/*------------------------------------------------------------
Func: EEPROM<4F><4D><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
Note:
-------------------------------------------------------------*/
void EEPROM_ReadWords(u16 Addr,u16 *Buffer,u16 Length)
{
u32 *wAddr;
wAddr=(u32 *)(EEPROM_BASE_ADDR+Addr);
while(Length--){
*Buffer++=*wAddr;
wAddr+=2;
}
}
/*------------------------------------------------------------
Func: EEPROM<4F><4D><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>˫<EFBFBD><CBAB>
Note:
-------------------------------------------------------------*/
void EEPROM_ReadDWords(u16 Addr,u32 *Buffer,u16 Length)
{
u32 *wAddr;
wAddr=(u32 *)(EEPROM_BASE_ADDR+Addr);
while(Length--){
*Buffer++=*wAddr;
wAddr+=4;
}
}
/*------------------------------------------------------------
Func: EEPROM<4F><4D><EFBFBD>ݰ<EFBFBD><DDB0>ֽ<EFBFBD>д<EFBFBD><D0B4>
Note:
-------------------------------------------------------------*/
void EEPROM_WriteBytes(u16 Addr,u8 *Buffer,u16 Length)
{
u8 *wAddr;
wAddr=(u8 *)(EEPROM_BASE_ADDR+Addr);
FLASH->PEKEYR=PEKEY1; //unlock
FLASH->PEKEYR=PEKEY2;
while(FLASH->PECR&FLASH_PECR_PELOCK);
FLASH->PECR|=FLASH_PECR_FTDW; //not fast write
while(Length--){
*wAddr++=*Buffer++;
while(FLASH->SR&FLASH_SR_BSY);
}
FLASH->PECR|=FLASH_PECR_PELOCK;
}
/*------------------------------------------------------------
Func: EEPROM<4F><4D><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>д<EFBFBD><D0B4>
Note: <20>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-------------------------------------------------------------*/
void EEPROM_WriteWords(u16 Addr,u16 *Buffer,u16 Length)
{
u32 *wAddr;
wAddr=(u32 *)(EEPROM_BASE_ADDR+Addr);
FLASH->PEKEYR=PEKEY1; //unlock
FLASH->PEKEYR=PEKEY2;
while(FLASH->PECR&FLASH_PECR_PELOCK);
FLASH->PECR|=FLASH_PECR_FTDW; //not fast write
while(Length--){
*wAddr=*Buffer++;
wAddr+=2;
while(FLASH->SR&FLASH_SR_BSY);
}
FLASH->PECR|=FLASH_PECR_PELOCK;
}
/*------------------------------------------------------------
Func: EEPROM<4F><4D><EFBFBD>ݰ<EFBFBD>˫<EFBFBD><CBAB>д<EFBFBD><D0B4>
Note:
-------------------------------------------------------------*/
void EEPROM_WriteDWords(u16 Addr,u32 *Buffer,u16 Length)
{
u32 *wAddr;
wAddr=(u32 *)(EEPROM_BASE_ADDR+Addr);
FLASH->PEKEYR=PEKEY1; //unlock
FLASH->PEKEYR=PEKEY2;
while(FLASH->PECR&FLASH_PECR_PELOCK);
FLASH->PECR|=FLASH_PECR_FTDW; //not fast write
while(Length--){
*wAddr=*Buffer++;
wAddr+=4;
while(FLASH->SR&FLASH_SR_BSY);
}
FLASH->PECR|=FLASH_PECR_PELOCK;
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: Read_Equipment_Par()
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: EERPOM<4F><4D>ȡ<EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>
* <09><> <20><> <20><><EFBFBD><EFBFBD>
* <20><> <20><> <20><>Init_Data_Equipmend
*********************************************************************************************************
*/
Init_Data Read_Equipment_Par(void)
{
Init_Data Init_Data_Equipmend={'\0'};
EEPROM_ReadBytes(0, (u8*)Init_Data_Equipmend.Bc25_Ip,Bc25_Ip_len);
EEPROM_ReadBytes(20, (u8*)Init_Data_Equipmend.Bc25_Port,Bc25_Port_len);
EEPROM_ReadBytes(30, (u8*)Init_Data_Equipmend.ESP8266_AP_Ports,ESP8266_AP_Ports_len);
EEPROM_ReadBytes(60, (u8*)Init_Data_Equipmend.ESP8266_AP_PWDs,ESP8266_AP_PWDs_len);
EEPROM_ReadBytes(40, (u8*)Init_Data_Equipmend.ESP8266_AP_SSIDs,ESP8266_AP_SSIDs_len);
EEPROM_ReadBytes(100, (u8*)Init_Data_Equipmend.Measure_Interval,Measure_Interval_len);
EEPROM_ReadBytes(110, (u8*)Init_Data_Equipmend.Pub_Mode,Pub_Mode_len);
EEPROM_ReadBytes(120, (u8*)Init_Data_Equipmend.Pub_Time,Pub_Time_len);
EEPROM_ReadBytes(130, (u8*)Init_Data_Equipmend.Equipment_ID,Equipment_ID_len);
EEPROM_ReadBytes(150, (u8*)Init_Data_Equipmend.appointment_time,appointment_time_len);
EEPROM_ReadBytes(166, (u8*)Init_Data_Equipmend.measure_mode,measure_mode_len);
EEPROM_ReadBytes(185, &Init_Data_Equipmend.par_change,1);
EEPROM_ReadBytes(186, &Init_Data_Equipmend.Bc25_Send_Header,1);
EEPROM_ReadBytes(240, (u8*)Init_Data_Equipmend.IOT_Username,IOT_Username_len);
EEPROM_ReadBytes(260, (u8*)Init_Data_Equipmend.IOT_Password,IOT_Password_len);
EEPROM_ReadBytes(280, (u8*)Init_Data_Equipmend.IOT_Theme_name,IOT_Theme_name_len);
return Init_Data_Equipmend;
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: Write_Equipment_Par()
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
* <09><> <20><> <20><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> Init_Data_Equipmend
* <20><> <20><> <20><><EFBFBD><EFBFBD>
*********************************************************************************************************
*/
void Write_Equipment_Par(Init_Data Init_Data_Equipmend)
{
Clear_eeprom_par();
EEPROM_WriteBytes(0, (u8*)Init_Data_Equipmend.Bc25_Ip,strlen(Init_Data_Equipmend.Bc25_Ip));
EEPROM_WriteBytes(20, (u8*)Init_Data_Equipmend.Bc25_Port,strlen(Init_Data_Equipmend.Bc25_Port));
EEPROM_WriteBytes(30, (u8*)Init_Data_Equipmend.ESP8266_AP_Ports,strlen(Init_Data_Equipmend.ESP8266_AP_Ports));
EEPROM_WriteBytes(60, (u8*)Init_Data_Equipmend.ESP8266_AP_PWDs,strlen(Init_Data_Equipmend.ESP8266_AP_PWDs));
EEPROM_WriteBytes(40, (u8*)Init_Data_Equipmend.ESP8266_AP_SSIDs,strlen(Init_Data_Equipmend.ESP8266_AP_SSIDs));
EEPROM_WriteBytes(100, (u8*)Init_Data_Equipmend.Measure_Interval,strlen(Init_Data_Equipmend.Measure_Interval));
EEPROM_WriteBytes(110, (u8*)Init_Data_Equipmend.Pub_Mode,strlen(Init_Data_Equipmend.Pub_Mode));
EEPROM_WriteBytes(120, (u8*)Init_Data_Equipmend.Pub_Time,strlen(Init_Data_Equipmend.Pub_Time));
EEPROM_WriteBytes(130, (u8*)Init_Data_Equipmend.Equipment_ID,strlen(Init_Data_Equipmend.Equipment_ID));
EEPROM_WriteBytes(150, (u8*)Init_Data_Equipmend.appointment_time,appointment_time_len);
EEPROM_WriteBytes(166, (u8*)Init_Data_Equipmend.measure_mode,1);
EEPROM_WriteBytes(185, &Init_Data_Equipmend.par_change,1);
EEPROM_WriteBytes(185, &Init_Data_Equipmend.Bc25_Send_Header,1);
EEPROM_WriteBytes(140,&Par_store_flag,1);
EEPROM_WriteBytes(240, (u8*)Init_Data_Equipmend.IOT_Username,strlen(Init_Data_Equipmend.IOT_Username));
EEPROM_WriteBytes(260, (u8*)Init_Data_Equipmend.IOT_Password,strlen(Init_Data_Equipmend.IOT_Password));
EEPROM_WriteBytes(280, (u8*)Init_Data_Equipmend.IOT_Theme_name,strlen(Init_Data_Equipmend.IOT_Theme_name));
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: clear_Init_Data_Equipment()
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD>
* <09><> <20><> <20><><EFBFBD><EFBFBD>
* <20><> <20><> <20><><EFBFBD><EFBFBD>
*********************************************************************************************************
*/
void clear_Init_Data_Equipment(void)
{
memset(Init_Data_Equipment.Bc25_Ip,0,Bc25_Ip_len);
memset(Init_Data_Equipment.Bc25_Port,0,Bc25_Port_len);
memset(Init_Data_Equipment.ESP8266_AP_Ports,0,ESP8266_AP_Ports_len);
memset(Init_Data_Equipment.ESP8266_AP_PWDs,0,ESP8266_AP_PWDs_len);
memset(Init_Data_Equipment.ESP8266_AP_SSIDs,0,ESP8266_AP_SSIDs_len);
memset(Init_Data_Equipment.Measure_Interval,0,Measure_Interval_len);
memset(Init_Data_Equipment.Pub_Mode,0,Pub_Mode_len);
memset(Init_Data_Equipment.Pub_Time,0,Pub_Time_len);
memset(Init_Data_Equipment.Equipment_ID,0,Equipment_ID_len);
memset(Init_Data_Equipment.appointment_time,0,appointment_time_len);
memset(Init_Data_Equipment.measure_mode,0,measure_mode_len);
memset(Init_Data_Equipment.IOT_Username,0,IOT_Username_len);
memset(Init_Data_Equipment.IOT_Password,0,IOT_Password_len);
memset(Init_Data_Equipment.IOT_Theme_name,0,IOT_Theme_name_len);
Init_Data_Equipment.par_change=0;
Init_Data_Equipment.Bc25_Send_Header=0;
// Write_Equipment_Par(Init_Data_Equipment);
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: Clear_eeprom_par()
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>EEPROM
* <09><> <20><> <20><><EFBFBD><EFBFBD>
* <20><> <20><> <20><><EFBFBD><EFBFBD>
*********************************************************************************************************
*/
void Clear_eeprom_par(void)
{
uint8_t data=0x00;
int i=0;
for(i=0;i<300;i++)
{
EEPROM_WriteBytes(i,&data,1);
}
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: Write_Factory_Par()
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <09><> <20><> <20><><EFBFBD><EFBFBD>
* <20><> <20><> <20><><EFBFBD><EFBFBD>
*********************************************************************************************************
*/
void Write_Factory_Par(void)
{
clear_Init_Data_Equipment();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A2>
sprintf(Init_Data_Equipment.Bc25_Ip,"%s","\"39.105.230.197\"");
sprintf(Init_Data_Equipment.Bc25_Port,"%s","1883");
// sprintf(Init_Data_Equipment.Bc25_Ip,"%s","\"219.238.240.58\"");
// sprintf(Init_Data_Equipment.Bc25_Port,"%s","9027");
sprintf(Init_Data_Equipment.ESP8266_AP_Ports,"%s","8080");
sprintf(Init_Data_Equipment.ESP8266_AP_PWDs,"%s","88888888");
sprintf(Init_Data_Equipment.ESP8266_AP_SSIDs,"%s","licawifi");
sprintf(Init_Data_Equipment.Measure_Interval,"%s","00001");
sprintf(Init_Data_Equipment.Pub_Mode,"%s","00");
sprintf(Init_Data_Equipment.Pub_Time,"%s","5");
sprintf(Init_Data_Equipment.Equipment_ID,"%s","123456789");
sprintf(Init_Data_Equipment.appointment_time,"%s","20221130114400");
sprintf(Init_Data_Equipment.measure_mode,"%s","0");
sprintf(Init_Data_Equipment.IOT_Username,"%s","\"lichao\"");
sprintf(Init_Data_Equipment.IOT_Password,"%s","\"910517@lc\"");
sprintf(Init_Data_Equipment.IOT_Theme_name,"%s","SM-1000M");
Init_Data_Equipment.par_change=0;
Init_Data_Equipment.Bc25_Send_Header=0;
Write_Equipment_Par(Init_Data_Equipment);
Par_store_flag=0x01;
EEPROM_WriteBytes(140,&Par_store_flag,1);
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: get_meaidv()
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S
* <09><> <20><> <20><><EFBFBD><EFBFBD>
* <20><> <20><> <20><>measurt_idv_set*60;
*********************************************************************************************************
*/
u32 get_meaidv(void)
{
uint32_t measurt_idv_set;
measurt_idv_set= hexToDec(Init_Data_Equipment.Measure_Interval);
return measurt_idv_set*60;
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: get_pubidv()
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><>ȡԶ<C8A1><D4B6>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S
* <09><> <20><> <20><><EFBFBD><EFBFBD>
* <20><> <20><> <20><>pub_idv_set*60
*********************************************************************************************************
*/
u32 get_pubidv(void)
{
uint32_t pub_idv_set;
pub_idv_set=hexToDec(Init_Data_Equipment.Pub_Time);
return pub_idv_set*60 + 60*2;
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: hexToDec()
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת10<31><30><EFBFBD><EFBFBD>
* <09><> <20><> <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>shex
* <20><> <20><> <20><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mid
*********************************************************************************************************
*/
u16 hexToDec(char *shex)
{
u16 len,i,mid=0;
len=strlen(shex);
if(len>8)return 0;
for(i=0;i<len;i++)
{
if (shex[i] >= '0' && shex[i] <= '9')
{
if(i>0)mid*=10;
//mid *= (u16)pow(10,1);
mid += (shex[i] - '0');
}
else
return 0;
}
return mid;
}
/***************************** END OF FILE *********************************/

View File

@ -0,0 +1,102 @@
#ifndef _eeprom_H
#define _eeprom_H
#include "bsp.h"
#include "stm32l1xx_flash.h"
/****************<2A><><EFBFBD><EFBFBD>EEPROM<4F>Ĵ洢<C4B4><E6B4A2><EFBFBD><EFBFBD>*************
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ַ Ĭ<><C4AC>ֵ
IOT-IP 0-19 219.238.240.58 (Զ<><D4B6>TCPSERVER<45><52>ַ)
IOT-PORT 20-29 9022 (Զ<><D4B6>TCPSERVER<45>˿<EFBFBD>)
WIFI-PORT 30-39 8080 (WIFI<46><49><EFBFBD>ض˿<D8B6>)
WIFI<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 40-59 lica_esp8266 ˵<><CBB5>δ<EFBFBD><EFBFBD><E1B5BD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B6A8><EFBFBD><EFBFBD>20
WIFI<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 60-69 12345678 <20><><EFBFBD><EFBFBD><38><CEBB><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>64λ<34><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>涨Ϊ10λ
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 100-105 600S <20><>Χ0-86400 0-24H
<EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>ģʽ 110-119 <20><>δʹ<CEB4><CAB9>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ʱ<EFBFBD><EFBFBD> 120-129 00000 Сʱ+<2B><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сʱ<D0A1><CAB1><EFBFBD><EFBFBD>23Ϊ<33><CEAA><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
<EFBFBD>豸ID 130-139 <20>ݶ<EFBFBD><DDB6>豸ID<49><44>Ϊ10λ
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ 140 1<>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> 0<><30>
ԤԼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> 150-165 ddhhmmss
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ 166 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>1ԤԼ<D4A4><D4BC><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ԤԼʱ<D4BC><CAB1>>24H<34><48><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ϵͳʱ<EFBFBD><EFBFBD>ǧ<EFBFBD><EFBFBD>λ 170-171
TF<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD>ʼλ<EFBFBD><EFBFBD> 180-183
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ı<EFBFBD>־ 185 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĺ󣬸ñ<F3A3ACB8>־<EFBFBD><D6BE>1<EFBFBD><31>
Զ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD>־ 186 <20><><EFBFBD>ͱ<EFBFBD>ͷ<EFBFBD>󣬸ñ<F3A3ACB8>־<EFBFBD><D6BE>1<EFBFBD><31>
Զ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 187
IAP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ 189-190 0<>޳<EFBFBD><DEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
IAP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 190-209 <20><><EFBFBD><EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B><><EFBFBD>ڵĵڼ<C4B5><DABC><EFBFBD> V1.0_20220309_99
APP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 210-239 <20><><EFBFBD><EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B><><EFBFBD>ڵĵڼ<C4B5><DABC><EFBFBD> V1.0_20220309_99
IOT-Username 240-259 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
IOT-Password 260-279 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IOT-Theme-name 280-299 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
***************************************/
#define PEKEY1 0x89ABCDEF //FLASH_PEKEYR
#define PEKEY2 0x02030405 //FLASH_PEKEYR
#define EEPROM_BASE_ADDR 0x08080000
#define EEPROM_BYTE_SIZE 0x3000 //12keeprom<6F><EFBFBD>ռ<EFBFBD> 12288<38><38><EFBFBD>ֽ<EFBFBD>
#define EN_INT __enable_irq(); //ϵͳ<CFB5><CDB3>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD>
#define DIS_INT __disable_irq(); //ϵͳ<CFB5><CDB3>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD>
#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);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD>õIJ<C3B5><C4B2><EFBFBD>
typedef struct
{
char Bc25_Ip[Bc25_Ip_len]; //Զ<>̴<EFBFBD><CCB4><EFBFBD><EFBFBD>豸IP
char Bc25_Port[Bc25_Port_len]; //Զ<>̴<EFBFBD><CCB4><EFBFBD><EFBFBD>˿<EFBFBD>
char ESP8266_AP_SSIDs[ESP8266_AP_SSIDs_len];//WIFI<46><49><EFBFBD><EFBFBD>
char ESP8266_AP_Ports[ESP8266_AP_Ports_len];//WIFI<46>˿<EFBFBD>
char ESP8266_AP_PWDs[ESP8266_AP_PWDs_len];//WiFi<46><69><EFBFBD><EFBFBD>
char Measure_Interval[Measure_Interval_len];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char Pub_Mode[Pub_Mode_len];//<2F><>δʹ<CEB4><CAB9>
char Pub_Time[Pub_Time_len];//<2F><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λS
char Equipment_ID[Equipment_ID_len]; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
// char Equipment_ID_WKUP[2];
char appointment_time[appointment_time_len];//ԤԼ<D4A4><D4BC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA> yyyymmDDHHMMSS
char measure_mode[measure_mode_len];
uint8_t par_change;
uint8_t Bc25_Send_Header;
char IOT_Username[IOT_Username_len]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
char IOT_Password[IOT_Password_len]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char IOT_Theme_name[IOT_Theme_name_len];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}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);//<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
u16 hexToDec(char *shex);
#endif