135 lines
4.3 KiB
C
135 lines
4.3 KiB
C
/*
|
||
*****************************************************************
|
||
头文件
|
||
*****************************************************************
|
||
*/
|
||
#include "bsp.h"
|
||
#include "sdi12.h"
|
||
/*
|
||
*****************************************************************
|
||
变量
|
||
*****************************************************************
|
||
*/
|
||
u8 Par_store_flag; //设备参数是否写入标志
|
||
u32 *total_s=0, *free_s=0;
|
||
uint8_t total_flag;
|
||
/*
|
||
*********************************************************************************************************
|
||
* 函 数 名: bsp_init()
|
||
* 功能说明: 设备启动初始化、写入并且读取设备参数、远传校时
|
||
* 输 入 :设备参数Init_Data_Equipment
|
||
* 输 出 :无
|
||
*********************************************************************************************************
|
||
*/
|
||
float ADCADCADFC=0;
|
||
char hhmmsss[10]={'\0'},yymmddd[10]={'\0'},addr;
|
||
void bsp_init(void)
|
||
{
|
||
u8 kahtkl = 1;
|
||
u8 iap_flag[2]={0x30};
|
||
unsigned char i = 1;
|
||
|
||
STB_ITStatus STB_ITStatusS;
|
||
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
|
||
EN_INT;
|
||
bsp_InitDWT();
|
||
timer2_init();
|
||
Usart5_Configuration(9600); //485串口初始化
|
||
|
||
/**************设备启动方式**************/
|
||
STB_ITStatusS = Get_Wkup_MYITstatus();//获取启动时的源
|
||
EEPROM_ReadBytes(188,iap_flag,1);
|
||
//u5_printf("iap_flag is:%x\r\n",iap_flag[0]);
|
||
if(iap_flag[0]==0x31)
|
||
{
|
||
MYITStatus1.AlarmA_ITStatus=0;
|
||
MYITStatus1.AlarmB_ITStatus=0;
|
||
MYITStatus1.WKUP1_ITStatus=0;
|
||
MYITStatus1.WKUP_MEA_WIFI=0;
|
||
MYITStatus1.WKUP_POWBUTTON=1;
|
||
MYITStatus1.WUT_ITStatus=0;
|
||
STB_ITStatusS=Power_ON;
|
||
iap_flag[0]=0x30;
|
||
EEPROM_WriteBytes(188,iap_flag,1);
|
||
}
|
||
RtcWakeUppin();
|
||
PWR_CTRL_Init(); //系统电源初始化配置,关闭电路板外设所有电源
|
||
PWR_CTRL3V3_H; //开启3.3V总电源
|
||
PWR_CTRLTFWF_H;
|
||
|
||
|
||
// addr = Sdi_readaddress();
|
||
//PWR_CTRLTFWF_H;
|
||
USART2_Configuration(9600); //BC25串口初始化
|
||
USART3_Configuration(9600); //L76C串口初始化
|
||
USART4_Configuration(115200); //WIFI接口
|
||
|
||
ADC15_Init(); //ADC初始化
|
||
DS3231_Init();
|
||
sdi12_Power_init();
|
||
|
||
PWR_ClearFlag(PWR_FLAG_WU);//唤醒标志
|
||
EEPROM_ReadBytes(140,&Par_store_flag,1);//设备是否已经存储了参数 1存储 0无参数
|
||
Init_Data_Equipment = Read_Equipment_Par();//读取设备参数
|
||
|
||
//u5_printf("Equipment Start..........\r\n");
|
||
if(Par_store_flag != 0x01 || (strstr(Init_Data_Equipment.IOT_Theme_name,"SM-1000M") == 0)) //写入设备参数
|
||
{
|
||
Write_Factory_Par();
|
||
EEPROM_WriteDWords(180,0,1);
|
||
//u5_printf("read Init_Data_Equipment..........\r\n");
|
||
Init_Data_Equipment = Read_Equipment_Par();//读取设备参数
|
||
//u5_printf("Bc25_Ip:%s\r\n",Init_Data_Equipment.Bc25_Ip);
|
||
// u5_printf("Bc25_Port:%s\r\n",Init_Data_Equipment.Bc25_Port);
|
||
// u5_printf("ESP8266_AP_Ports:%s\r\n",Init_Data_Equipment.ESP8266_AP_Ports);
|
||
// u5_printf("ESP8266_AP_PWDs:%s\r\n",Init_Data_Equipment.ESP8266_AP_PWDs);
|
||
// u5_printf("ESP8266_AP_SSIDs:%s\r\n",Init_Data_Equipment.ESP8266_AP_SSIDs);
|
||
// u5_printf("Measure_Interval:%s\r\n",Init_Data_Equipment.Measure_Interval);
|
||
// u5_printf("Pub_Mode:%s\r\n",Init_Data_Equipment.Pub_Mode);
|
||
// u5_printf("Pub_Time:%s\r\n",Init_Data_Equipment.Pub_Time);
|
||
// u5_printf("Equipment_ID:%s\r\n",Init_Data_Equipment.Equipment_ID);
|
||
// u5_printf("appointment_time:%s\r\n",Init_Data_Equipment.appointment_time);
|
||
// u5_printf("measure_mode:%s\r\n",Init_Data_Equipment.measure_mode);
|
||
EEPROM_ReadBytes(140,&Par_store_flag,1);//设备是否已经存储了参数 1存储 0无参数
|
||
// u5_printf("Par_store_flag:%d\r\n",Par_store_flag);
|
||
// u5_printf("read Init_Data_Equipment end!!!!!\r\n");
|
||
}
|
||
|
||
if(STB_ITStatusS==Power_ON)
|
||
{
|
||
BC25_Status.cpin=1;
|
||
MYRTC_Init();
|
||
get_show_time();
|
||
SetRTC(calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);
|
||
//BC25_time_RTC();//BC25进行校时
|
||
EEPROM_WriteBytes(170,(u8*)"20",2);
|
||
BC25_POWEROFF();
|
||
|
||
//SetRTC(22,11,30,14,15,0);
|
||
//delay_ms(500);
|
||
GetRTC(hhmmsss,yymmddd);
|
||
// u5_printf("RTC is:%s %s\r\n", yymmddd,hhmmsss);
|
||
delay_ms(3000);
|
||
|
||
PWR_CTRLTFWF_L;
|
||
}
|
||
else
|
||
{
|
||
rtc_std_init();
|
||
}
|
||
|
||
|
||
//u5_printf("start_way is :%d\r\n",STB_ITStatusS);
|
||
GetRTC(hhmmsss,yymmddd);
|
||
//u5_printf("RTC is:%s %s\r\n", yymmddd,hhmmsss);
|
||
|
||
|
||
__nop();
|
||
|
||
|
||
//total_flag=exf_getfree("0",total_s, free_s);
|
||
}
|
||
|
||
|
||
/***************************** END OF FILE *********************************/
|