/****************************************************************************** * Copyright (C) 2014-2015 HangZhou SiZhu Co.,LTD. * *----------------------------------------------------------------------------- * File: main.c * Description: main test code used for test all hardware * Author: * Date: August 8, 2021 *****************************************************************************/ /* ----------------------- Platform includes --------------------------------*/ #include "main.h" /****************************************** * func: main * desc: main test code used for test all hardware STM32F103VE FLASH 512K SRAM 64K * input: none * output: none * return: none *****************************************/ int main(void) { /*µØÖ·×ª»»*/ SCB->VTOR = FLASH_BASE | 0x8000; /* Vector Table Relocation in Internal FLASH. */ /*ÍâÉè³õʼ»¯*/ ufg620_system_para_init(); // ThirdFunctionTset(); /*½øÈëÖ÷³ÌÐò*/ while(1) { #if WD_USE IWDG_Init(); #endif while(SYSTEM_ONLY_WORK_MODE == v20_system_para_g.system_mode) { work_process_para_init(); WD_GPIO_diff while(SYSTEM_ONLY_WORK_MODE == v20_system_para_g.system_mode ) { // µÈ´ýʱ¼äÖÜÆÚµ½ if( (system_time_ev_g.time_period_flag == TRUE) && (v20_system_para_g.system_extern_power_connect_flag == ACTIVE) ) { system_time_ev_g.time_period_flag = FALSE; /*¿´ÃŹ·Î¹¹·*/ IWDG_Feed(); WD_GPIO_diff Get_Time();//»ñȡʱ¼ä //****************²âÁ¿Î¶ÈѹÁ¦ + *********************// Pulse_Output(); //¸ßƵÂö³åÊä³ö // lower_pluse_out();//µÍƵÂö³åÐźÅÊä³ö ///jlcתÓÃΪµç»úOPENÐźŠcurrent_output(); //µçÁ÷»· /*FPGA¼ÆÁ¿*/ measure_process_new_state1(); measure_process_new_state2(); pressure_and_temperature_process();//ÎÂѹ¼ì²â /*¼ÆÁ¿Êý¾Ý´¦Àí²¢´æ´¢*/ data_trans_reg(); /*¿´ÃŹ·Î¹¹·*/ IWDG_Feed(); WD_GPIO_diff ble_detection_and_handle(); //À¶ÑÀºÍÉÏλ»ú get_bat_voltage_Pro();//ÖÜÆÚÐԲɼ¯µç³Øµçѹ /*״̬×Ö*/ sizhu_state_word_pro(); SystemPro(); /*±¨¾¯×Ö¼°±¨¾¯Êý¾Ý´æ´¢*/ sizhu_alarm_word_pro(); sys_menu(); //°´¼üÏÔʾ calibration_mode_process(); Valve_Control_Fun(); //·§¿Ø /*˼ÖþÈÕÖ¾´æ´¢*/ sizhu_eeprom_save_log_process(); //¼ì²é´®¿ÚÊý¾Ý // rx_pc_485_task(); //485 ///jlcתÓÃΪµç»úÐźŠ#ifdef THIRD_TELECOM_OPEN gprs_third_handle(); #endif // if(data_interaction_DTU_para_g.DT_mode == DT_MODE_DTU) // { // data_interaction_DTU_fun(); // }else // { gprs_sizhu_handle(); //ƽ̨ÎÞÏßͨѶ // } /*ϵͳ¼ì²é,±ØÐë·ÅÔÚÉϱ¨ºóÃæ£¬·ñÔòÄÚÍâµçģʽÇл»Ê±ÎÞ·¨²úÉú¹©µç±¨¾¯*/ system_working_detection(); /*modbusµØÖ·±íÊý¾Ý¸üÐÂ*/ modbus_data_updata(); /*µ÷ÊÔ״̬¼ì²â*/ system_working_enter_detection(); } } } while(SYSTEM_LOWPOWER_WORK_MODE == v20_system_para_g.system_mode) { low_power_process_para_init(); WD_GPIO_diff while(SYSTEM_LOWPOWER_WORK_MODE == v20_system_para_g.system_mode ) { if( (system_time_ev_g.time_period_flag == TRUE) && (v20_system_para_g.system_extern_power_connect_flag == NOACTIVE) ) { system_time_ev_g.time_period_flag = FALSE; All_GPIO_Lowpower_Init(); //¶Ë¿Ú³õʼ»¯ /*¿´ÃŹ·Î¹¹·*/ IWDG_Feed(); WD_GPIO_diff Get_Time();//»ñȡʱ¼ä // lower_pluse_out();//µÍƵÂö³åÐźÅÊä³ö ///jlcתÓÃΪµç»úOPENÐźŠcurrent_output();//µçÁ÷»· if((work_flow_average_g.flow_0_flag ==0)||((work_flow_average_g.flow_0_flag ==1)&&(v20_system_para_g.system_bat_work_period1%2 ==0 ))) { /*FPGA¼ÆÁ¿*/ /*ûÓг¤Ê±¼ä0Á÷Á¿Ê±£¬Ã¿Ã빤×÷£¬Èç¹û³¤Ê±¼ä0Á÷Á¿£¬Ôòÿ2Ã빤×÷ */ measure_process_new_low_power_state1(); measure_process_new_low_power_state2(1); // work_flow_average_g.FPGA_work_test ++; } pressure_and_temperature_process();//ÎÂѹ¼ì²â /*¼ÆÁ¿Êý¾Ý´¦Àí²¢´æ´¢*/ data_trans_reg(); get_bat_voltage_Pro();//ÖÜÆÚÐԲɼ¯µç³Øµçѹ /*¿´ÃŹ·Î¹¹·*/ IWDG_Feed(); WD_GPIO_diff /*״̬×Ö*/ sizhu_state_word_pro(); SystemPro(); /*±¨¾¯×Ö*/ sizhu_alarm_word_pro(); //¼ì²é´®¿ÚÊý¾ÝºÍÀ¶ÑÀͨÐÅÊý¾Ý only_ble_detection_and_handle(); //À¶ÑÀÊý¾Ý´¦Àí sys_menu(); //°´¼üÏÔʾ Valve_Control_Fun(); //·§¿Ø /*˼ÖþÈÕÖ¾´æ´¢*/ sizhu_eeprom_save_log_process(); #ifdef THIRD_TELECOM_OPEN gprs_third_handle(); #endif // if(data_interaction_DTU_para_g.DT_mode == DT_MODE_DTU) // { // data_interaction_DTU_fun(); // }else // { gprs_sizhu_handle(); //ƽ̨ÎÞÏßͨѶ // } /*Ìá¸ßÏìÓ¦ËÙ¶È*/ if((v20_system_para_g.system_extern_power_connect_flag == 1)||(v20_system_para_g.valve_enter_status == 1)) { // rx_pc_485_task();///jlcתÓÃΪµç»úÐźŠ} /*ϵͳ¼ì²é,±ØÐë·ÅÔÚÉϱ¨ºóÃæ£¬·ñÔòÄÚÍâµçģʽÇл»Ê±ÎÞ·¨²úÉú¹©µç±¨¾¯*/ system_working_detection(); //ϵͳ״̬¼ì²â /*modbusµØÖ·±íÊý¾Ý¸üÐÂ*/ modbus_data_updata(); /*µ÷ÊÔ״̬¼ì²â*/ system_working_enter_detection(); /*ÌØÊâÇé¿öϲ»ÐÝÃß*/ if(0 == system_connect()) { #if WD_USE GPIO_IPD_Init(); // ex_rtc_nv_config_disable(); PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); // All_clock_Init(); #endif } } } } /*DEBUG MODE*/ while(SYSTEM_DEBUG_MODE == v20_system_para_g.system_mode) { system_debug_para_init(); //system_in_debug_fpga_init(); while(SYSTEM_DEBUG_MODE == v20_system_para_g.system_mode ) { ble_detection_and_handle(); delay_ms(10); debug_task(); /*¿´ÃŹ·Î¹¹·*/ IWDG_Feed(); WD_GPIO_diff } system_debug_para_out(); } /*UPDATA MODE*/ while(SYSTEM_UPDATA_MODE == v20_system_para_g.system_mode) { while(SYSTEM_UPDATA_MODE == v20_system_para_g.system_mode ) { WD_GPIO_Deinit(); enter_void(); } } } }