/* ***************************************************************** 头文件 ***************************************************************** */ #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 *********************************/