P2UWaterJiangXi/app/UWater_sys.c

410 lines
18 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
/*******************************************************************************
* @Copyright (c) :(C)2016, Qingdao ieslab Co., Ltd
* @FileName :GP22Gas_sys.c
* @Author :Team
* @Version :V1.0
* @Date :2016<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>23<EFBFBD><EFBFBD> 10:53:39
* @Description :the function of the entity of GP22Gas_sys.c
*******************************************************************************/
#include "sys_config.h"
#include "UWater_sys.h"
#ifdef __cplusplus
extern "C" {
#endif
//#pragma clang diagnostic push
//#pragma clang diagnostic ignored "-Wunknown-attributes"
#define __no_init __attribute__((zero_init))
/*
__no_init volatile float gp22_copy_total_flow __attribute__((section(".ARM.__at_0x20007F00")));
__no_init volatile float gp22_copy_total_flow_reverse __attribute__((section(".ARM.__at_0x20007F04")));
__no_init volatile float gp22_copy_total_flow_test __attribute__((section(".ARM.__at_0x20007F08")));
__no_init volatile float gp22_copy_temp_total_flow_float_test __attribute__((section(".ARM.__at_0x20007F0C")));
__no_init volatile u32 gp22_copy_reset_flag_test __attribute__((section(".ARM.__at_0x20007F10")));
__no_init volatile u32 MCU_reset_judge __attribute__((section(".ARM.__at_0x20007F14")));
__no_init volatile float gp22_copy_temp_total_flow_float __attribute__((section(".ARM.__at_0x20007F18")));
__no_init volatile u16 record_last_calculative_time __attribute__((section(".ARM.__at_0x20007F1C"))); //<2F><><EFBFBD>ڼ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ϴμ<CFB4><CEBC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㸴λ<E3B8B4><CEBB>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
*/
__no_init volatile u32 meter_reset_cnt_reason __attribute__((section(".ARM.__at_0x20007F20")));//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
__no_init volatile u32 meter_boot_version __attribute__((section(".ARM.__at_0x20007F24")));//boot<6F><EFBFBD><E6B1BE>
/*
__no_init volatile u32 jx_com_rxbuf_wcount_copy __attribute__((section(".ARM.__at_0x20007F28")));
__no_init volatile u32 jx_com_rxbuf_rcount_copy __attribute__((section(".ARM.__at_0x20007F2C")));
__no_init volatile u16 jx_com_rxbuf_check_copy __attribute__((section(".ARM.__at_0x20007F30")));
__no_init volatile u8 upload_again_cnt_copy __attribute__((section(".ARM.__at_0x20007F34")));
__no_init volatile float temp_calculate_last __attribute__((section(".ARM.__at_0x20007F38")));
__no_init volatile float limit_valve_total_flow __attribute__((section(".ARM.__at_0x20007F40")));//<2F><>¼<EFBFBD>ط<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
void Clk_Init(void)
{
//ʱ<>ӷ<EFBFBD>Ƶ
Sysctrl_SetHCLKDiv(SysctrlHclkDiv1);///> <20><><EFBFBD><EFBFBD>SYSCLK-> HCLK <20>ķ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
Sysctrl_SetPCLKDiv(SysctrlPclkDiv1);///> <20><><EFBFBD><EFBFBD>HCLK-> PCLK <20>ķ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
///< RCHʱ<48>Ӳ<EFBFBD>ͬƵ<CDAC>ʵ<EFBFBD><CAB5>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ƚ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>л<EFBFBD><D0BB><EFBFBD>RCL 32.768KHZ
Sysctrl_SetRCLTrim(SysctrlRclFreq32768); //<2F><><EFBFBD><EFBFBD>RCLƵ<4C><C6B5>
Sysctrl_SetRCLStableTime(SysctrlRclStableCycle64); //<2F>ȶ<EFBFBD><C8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE); //ʹ<><CAB9>Ŀ<EFBFBD><C4BF>ʱ<EFBFBD><CAB1>Դ
Sysctrl_SysClkSwitch(SysctrlClkRCL); //<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>µ<EFBFBD>ʱ<EFBFBD><CAB1>Դ
///< <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ƶ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>
Sysctrl_SetRCHTrim(SysctrlRchFreq4MHz); //4M
///< ʹ<><CAB9>RCH
Sysctrl_ClkSourceEnable(SysctrlClkRCH, TRUE);
///< ʱ<><CAB1><EFBFBD>л<EFBFBD><D0BB><EFBFBD>RCH
Sysctrl_SysClkSwitch(SysctrlClkRCH);
Flash_Init(6, TRUE);
///< HCLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>24M<34><4D><EFBFBD>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>FLASH<53><48><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>Ϊ0 cycle
Flash_WaitCycle(FlashWaitCycle0);
///<ʹ<><CAB9>GPIOģ<4F><C4A3>ʱ<EFBFBD><CAB1>
Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
}
#if (HARDWARE_VERSION==0x14)//<2F><><EFBFBD>DZ<EFBFBD>
void UnusedGpioInit(void)
{
stc_gpio_cfg_t stcGpioCfg;
DDL_ZERO_STRUCT(stcGpioCfg);
stcGpioCfg.enDir = GpioDirOut; ///< <20>˿ڷ<CBBF><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD>
stcGpioCfg.enDrv = GpioDrvL; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enPu = GpioPuDisable; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>
stcGpioCfg.enPd = GpioPdDisable;
stcGpioCfg.enOD = GpioOdDisable; ///< <20>˿ڿ<CBBF>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
stcGpioCfg.enCtrlMode = GpioAHB; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>->AHB
/*LED<45><44>ʼ<EFBFBD><CABC>*/
Gpio_Init(LED_PORT, LED_PIN, &stcGpioCfg);
Gpio_WriteOutputIO(LED_PORT, LED_PIN, TRUE );//LED OFF
// /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ùܽų<DCBD>ʼ<EFBFBD><CABC>*/
// //PA5
// Gpio_Init(GpioPortA, GpioPin5, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortA, GpioPin5, FALSE);
// //PA13
// Gpio_Init(GpioPortA, GpioPin13, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortA, GpioPin13, FALSE);
// //PA14
// Gpio_Init(GpioPortA, GpioPin14, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortA, GpioPin14, FALSE);
// //PA15
// Gpio_Init(GpioPortA, GpioPin15, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortA, GpioPin15, FALSE);
// //PC10
// Gpio_Init(GpioPortC, GpioPin10, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortC, GpioPin10, FALSE);
// //PE11
// Gpio_Init(GpioPortE, GpioPin11, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortE, GpioPin11, FALSE);
//
// ////////////PA:GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin4|GpioPin5|GpioPin6|GpioPin7|GpioPin14|GpioPin15
Gpio_Init(GpioPortA, GpioPin0, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin1, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin2, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin3, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin4, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin5, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin6, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin7, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin13, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin14, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin15, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortA, GpioPin0, FALSE);//NB_MCUTX
Gpio_WriteOutputIO(GpioPortA, GpioPin1, FALSE);//NB_MCURX
Gpio_WriteOutputIO(GpioPortA, GpioPin2, FALSE);//NB_MCUWUIN------------
Gpio_WriteOutputIO(GpioPortA, GpioPin3, FALSE);//38K_IR_____________
Gpio_WriteOutputIO(GpioPortA, GpioPin4, FALSE); //null______________
Gpio_WriteOutputIO(GpioPortA, GpioPin5, FALSE);//NB_PSM_CHECK________
Gpio_WriteOutputIO(GpioPortA, GpioPin6, FALSE);//STA_CL
Gpio_WriteOutputIO(GpioPortA, GpioPin7, FALSE);//STA_OP
Gpio_WriteOutputIO(GpioPortA, GpioPin13,FALSE);//SWDIO
Gpio_WriteOutputIO(GpioPortA, GpioPin14,FALSE);//SWCLK
Gpio_WriteOutputIO(GpioPortA, GpioPin15,FALSE);//null
////
////////////PB
//Gpio_Init(GpioPortB, GpioPin7|GpioPin8|GpioPin9, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortB, GpioPin7|GpioPin8|GpioPin9, FALSE);
Gpio_Init(GpioPortB, GpioPin7, &stcGpioCfg);
Gpio_Init(GpioPortB, GpioPin8, &stcGpioCfg);
Gpio_Init(GpioPortB, GpioPin9, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortB, GpioPin7, FALSE);//PT2466_SLEEP________
Gpio_WriteOutputIO(GpioPortB, GpioPin8, FALSE);//ESCL
Gpio_WriteOutputIO(GpioPortB, GpioPin9, FALSE);//ESDA
////
////////////PC
//Gpio_Init(GpioPortC, GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin10|GpioPin11|GpioPin12|GpioPin13, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortC, GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin10|GpioPin11|GpioPin12|GpioPin13, FALSE);
Gpio_Init(GpioPortC, GpioPin0, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin1, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin2, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin3, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin10, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin11, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin12, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin13, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortC, GpioPin0, FALSE);//BAT_CHECK_MCU
Gpio_WriteOutputIO(GpioPortC, GpioPin1, FALSE);//VstaOrADC_MCU
Gpio_WriteOutputIO(GpioPortC, GpioPin2, FALSE);//T_ADC_MCU
Gpio_WriteOutputIO(GpioPortC, GpioPin3, FALSE);//VALVE_ADC_V_MCU
Gpio_WriteOutputIO(GpioPortC, GpioPin10, FALSE);//KEY_Reserved_________
Gpio_WriteOutputIO(GpioPortC, GpioPin11, FALSE);//MCU_RX
Gpio_WriteOutputIO(GpioPortC, GpioPin12, FALSE);//MCU_TX
Gpio_WriteOutputIO(GpioPortC, GpioPin13, TRUE);//LED_CTL
//
////////////PD
//Gpio_Init(GpioPortD, GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin4, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortD, GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin4, FALSE);
Gpio_Init(GpioPortD, GpioPin0, &stcGpioCfg);
Gpio_Init(GpioPortD, GpioPin1, &stcGpioCfg);
Gpio_Init(GpioPortD, GpioPin2, &stcGpioCfg);
Gpio_Init(GpioPortD, GpioPin3, &stcGpioCfg);
Gpio_Init(GpioPortD, GpioPin4, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortD, GpioPin0, FALSE);//nSSN_GP30
Gpio_WriteOutputIO(GpioPortD, GpioPin1, FALSE);//SCK_GP30
Gpio_WriteOutputIO(GpioPortD, GpioPin2, FALSE);//nINT_GP30
Gpio_WriteOutputIO(GpioPortD, GpioPin3, FALSE);//SO_GP30
Gpio_WriteOutputIO(GpioPortD, GpioPin4, FALSE);//SI_GP30
////////////PE
//Gpio_Init(GpioPortE, GpioPin2|GpioPin3|GpioPin4|GpioPin5|GpioPin11, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortE, GpioPin2|GpioPin3|GpioPin4|GpioPin5|GpioPin11, FALSE);
Gpio_Init(GpioPortE, GpioPin2, &stcGpioCfg);
Gpio_Init(GpioPortE, GpioPin3, &stcGpioCfg);
Gpio_Init(GpioPortE, GpioPin4, &stcGpioCfg);
Gpio_Init(GpioPortE, GpioPin5, &stcGpioCfg);
Gpio_Init(GpioPortE, GpioPin11, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortE, GpioPin2, TRUE); //IR_CTL _________
Gpio_WriteOutputIO(GpioPortE, GpioPin3, FALSE);//EN_PWR_EE
Gpio_WriteOutputIO(GpioPortE, GpioPin4, FALSE);//EN_NB_PWR
Gpio_WriteOutputIO(GpioPortE, GpioPin5, FALSE); //EN_Bat_Check_________
Gpio_WriteOutputIO(GpioPortE, GpioPin11, TRUE);//KEY_INT___________
////////////PF
//Gpio_Init(GpioPortF, GpioPin0|GpioPin1|GpioPin4|GpioPin5|GpioPin6|GpioPin7, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortF, GpioPin0|GpioPin1|GpioPin4|GpioPin5|GpioPin6|GpioPin7, FALSE);
Gpio_Init(GpioPortF, GpioPin0, &stcGpioCfg);
Gpio_Init(GpioPortF, GpioPin1, &stcGpioCfg);
Gpio_Init(GpioPortF, GpioPin4, &stcGpioCfg);
Gpio_Init(GpioPortF, GpioPin5, &stcGpioCfg);
Gpio_Init(GpioPortF, GpioPin6, &stcGpioCfg);
Gpio_Init(GpioPortF, GpioPin7, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortF, GpioPin0, FALSE);//NB_MCURESET
Gpio_WriteOutputIO(GpioPortF, GpioPin1, FALSE);//NB_MCUPWR
Gpio_WriteOutputIO(GpioPortF, GpioPin4, FALSE);//OPEN
Gpio_WriteOutputIO(GpioPortF, GpioPin5, FALSE);//CLOSE
Gpio_WriteOutputIO(GpioPortF, GpioPin6, FALSE);//TouchVCC__________
Gpio_WriteOutputIO(GpioPortF, GpioPin7, FALSE);//T_POWER
//<2F><EFBFBD><ECB3A3>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Meter_ResetCountAdd(0x80);
if(meter_reset_cnt_reason<0xA55AFF00)
{
meter_reset_cnt_reason += 0x100;//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
}
}
#elif (HARDWARE_VERSION==0x18)//Բ<>DZ<EFBFBD>
void UnusedGpioInit(void)
{
stc_gpio_cfg_t stcGpioCfg;
DDL_ZERO_STRUCT(stcGpioCfg);
stcGpioCfg.enDir = GpioDirOut; ///< <20>˿ڷ<CBBF><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD>
stcGpioCfg.enDrv = GpioDrvL; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stcGpioCfg.enPu = GpioPuDisable; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>
stcGpioCfg.enPd = GpioPdDisable;
stcGpioCfg.enOD = GpioOdDisable; ///< <20>˿ڿ<CBBF>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
stcGpioCfg.enCtrlMode = GpioAHB; ///< <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>->AHB
/*LED<45><44>ʼ<EFBFBD><CABC>*/
Gpio_Init(LED_PORT, LED_PIN, &stcGpioCfg);
Gpio_WriteOutputIO(LED_PORT, LED_PIN, TRUE );//LED OFF
// /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ùܽų<DCBD>ʼ<EFBFBD><CABC>*/
// //PA5
// Gpio_Init(GpioPortA, GpioPin5, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortA, GpioPin5, FALSE);
// //PA13
// Gpio_Init(GpioPortA, GpioPin13, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortA, GpioPin13, FALSE);
// //PA14
// Gpio_Init(GpioPortA, GpioPin14, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortA, GpioPin14, FALSE);
// //PA15
// Gpio_Init(GpioPortA, GpioPin15, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortA, GpioPin15, FALSE);
// //PC10
// Gpio_Init(GpioPortC, GpioPin10, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortC, GpioPin10, FALSE);
// //PE11
// Gpio_Init(GpioPortE, GpioPin11, &stcGpioCfg);
// Gpio_WriteOutputIO(GpioPortE, GpioPin11, FALSE);
//
// ////////////PA:GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin4|GpioPin5|GpioPin6|GpioPin7|GpioPin14|GpioPin15
Gpio_Init(GpioPortA, GpioPin0, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin1, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin2, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin3, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin4, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin5, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin6, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin7, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin13, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin14, &stcGpioCfg);
Gpio_Init(GpioPortA, GpioPin15, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortA, GpioPin0, FALSE);//NB_MCUTX
Gpio_WriteOutputIO(GpioPortA, GpioPin1, FALSE);//NB_MCURX
Gpio_WriteOutputIO(GpioPortA, GpioPin2, FALSE);//null______________
Gpio_WriteOutputIO(GpioPortA, GpioPin3, FALSE);//38K_IR_____________
Gpio_WriteOutputIO(GpioPortA, GpioPin4, FALSE); //T_POWER
Gpio_WriteOutputIO(GpioPortA, GpioPin5, FALSE);//T_ADC_MCU
Gpio_WriteOutputIO(GpioPortA, GpioPin6, FALSE);//null______________
Gpio_WriteOutputIO(GpioPortA, GpioPin7, FALSE);//null______________
Gpio_WriteOutputIO(GpioPortA, GpioPin13,FALSE);//SWDIO
Gpio_WriteOutputIO(GpioPortA, GpioPin14,FALSE);//SWCLK
Gpio_WriteOutputIO(GpioPortA, GpioPin15,FALSE);//null
////
////////////PB
//Gpio_Init(GpioPortB, GpioPin7|GpioPin8|GpioPin9, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortB, GpioPin7|GpioPin8|GpioPin9, FALSE);
Gpio_Init(GpioPortB, GpioPin7, &stcGpioCfg);
Gpio_Init(GpioPortB, GpioPin8, &stcGpioCfg);
Gpio_Init(GpioPortB, GpioPin9, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortB, GpioPin7, FALSE);//EN_PWR_EE
Gpio_WriteOutputIO(GpioPortB, GpioPin8, FALSE);//ESCL
Gpio_WriteOutputIO(GpioPortB, GpioPin9, FALSE);//ESDA
////
////////////PC
//Gpio_Init(GpioPortC, GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin10|GpioPin11|GpioPin12|GpioPin13, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortC, GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin10|GpioPin11|GpioPin12|GpioPin13, FALSE);
Gpio_Init(GpioPortC, GpioPin0, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin1, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin2, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin3, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin10, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin11, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin12, &stcGpioCfg);
Gpio_Init(GpioPortC, GpioPin13, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortC, GpioPin0, FALSE);//BAT_CHECK_MCU
Gpio_WriteOutputIO(GpioPortC, GpioPin1, FALSE);//VstaOrADC_MCU--null
Gpio_WriteOutputIO(GpioPortC, GpioPin2, FALSE);//NB_PSM_CHECK
Gpio_WriteOutputIO(GpioPortC, GpioPin3, FALSE);//VALVE_ADC_V_MCU--null
Gpio_WriteOutputIO(GpioPortC, GpioPin10, FALSE);//KEY_Reserved--null
Gpio_WriteOutputIO(GpioPortC, GpioPin11, FALSE);//MCU_RX
Gpio_WriteOutputIO(GpioPortC, GpioPin12, FALSE);//MCU_TX
Gpio_WriteOutputIO(GpioPortC, GpioPin13, FALSE);//KEY_Reserved
//
////////////PD
//Gpio_Init(GpioPortD, GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin4, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortD, GpioPin0|GpioPin1|GpioPin2|GpioPin3|GpioPin4, FALSE);
Gpio_Init(GpioPortD, GpioPin0, &stcGpioCfg);
Gpio_Init(GpioPortD, GpioPin1, &stcGpioCfg);
Gpio_Init(GpioPortD, GpioPin2, &stcGpioCfg);
Gpio_Init(GpioPortD, GpioPin3, &stcGpioCfg);
Gpio_Init(GpioPortD, GpioPin4, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortD, GpioPin0, FALSE);//nSSN_GP30
Gpio_WriteOutputIO(GpioPortD, GpioPin1, FALSE);//SCK_GP30
Gpio_WriteOutputIO(GpioPortD, GpioPin2, FALSE);//nINT_GP30
Gpio_WriteOutputIO(GpioPortD, GpioPin3, FALSE);//SO_GP30
Gpio_WriteOutputIO(GpioPortD, GpioPin4, FALSE);//SI_GP30
////////////PE
//Gpio_Init(GpioPortE, GpioPin2|GpioPin3|GpioPin4|GpioPin5|GpioPin11, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortE, GpioPin2|GpioPin3|GpioPin4|GpioPin5|GpioPin11, FALSE);
Gpio_Init(GpioPortE, GpioPin2, &stcGpioCfg);
Gpio_Init(GpioPortE, GpioPin3, &stcGpioCfg);
Gpio_Init(GpioPortE, GpioPin4, &stcGpioCfg);
Gpio_Init(GpioPortE, GpioPin5, &stcGpioCfg);
Gpio_Init(GpioPortE, GpioPin11, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortE, GpioPin2, FALSE); //NB_MCUPWR
Gpio_WriteOutputIO(GpioPortE, GpioPin3, FALSE);//NB_MCUWUIN
Gpio_WriteOutputIO(GpioPortE, GpioPin4, FALSE);//NB_MCURESET
Gpio_WriteOutputIO(GpioPortE, GpioPin5, FALSE); //EN_NB_PWR
Gpio_WriteOutputIO(GpioPortE, GpioPin11, TRUE);//KEY_INT
////////////PF
//Gpio_Init(GpioPortF, GpioPin0|GpioPin1|GpioPin4|GpioPin5|GpioPin6|GpioPin7, &stcGpioCfg);
//Gpio_WriteOutputIO(GpioPortF, GpioPin0|GpioPin1|GpioPin4|GpioPin5|GpioPin6|GpioPin7, FALSE);
Gpio_Init(GpioPortF, GpioPin0, &stcGpioCfg);
Gpio_Init(GpioPortF, GpioPin1, &stcGpioCfg);
Gpio_Init(GpioPortF, GpioPin4, &stcGpioCfg);
Gpio_Init(GpioPortF, GpioPin5, &stcGpioCfg);
Gpio_Init(GpioPortF, GpioPin6, &stcGpioCfg);
//
Gpio_WriteOutputIO(GpioPortF, GpioPin0, FALSE);//EN_Bat_Check
Gpio_WriteOutputIO(GpioPortF, GpioPin1, FALSE);//TouchVCC
Gpio_WriteOutputIO(GpioPortF, GpioPin4, FALSE);//no
Gpio_WriteOutputIO(GpioPortF, GpioPin5, FALSE);//no
Gpio_WriteOutputIO(GpioPortF, GpioPin6, TRUE);//IR_CTL
//<2F><EFBFBD><ECB3A3>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Meter_ResetCountAdd(0x80);
if(meter_reset_cnt_reason<0xA55AFF00)
{
meter_reset_cnt_reason += 0x100;//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
}
}
#endif
/***************************************************************
Function: Meter_ResetCountAdd (void)
Description: <EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>λԭ<EFBFBD>򱣴<EFBFBD>
****************************************************************/
void Meter_ResetCountAdd(u8 reason)
{
if((meter_reset_cnt_reason&0xA55A0000)!=0xA55A0000)
{
meter_reset_cnt_reason = 0xA55A0000;
}
meter_reset_cnt_reason |= reason;//
}
/***************************************************************
Function: Meter_GetResetCount
Description: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD>λԭ<EFBFBD><EFBFBD>
****************************************************************/
u16 Meter_GetResetCount(void)
{
if((meter_reset_cnt_reason&0xA55A0000)==0xA55A0000)
{
return (meter_reset_cnt_reason&0XFFFF);
}
return 0;
}
/***************************************************************
Function: Meter_BootVersionInit
Description: boot<EFBFBD><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><EFBFBD>
****************************************************************/
void Meter_BootVersionInit(void)
{
if((meter_boot_version&0xA55A0000)==0xA55A0000)
{
meter_boot_version &=0XFFFF;
}
else
{
meter_boot_version = 0;
}
}
/***************************************************************
Function: Meter_GetBootVersion
Description: <EFBFBD><EFBFBD>ȡboot<EFBFBD><EFBFBD><EFBFBD>
****************************************************************/
u16 Meter_GetBootVersion(void)
{
return meter_boot_version &=0XFFFF;
}
#ifdef __cplusplus
}
#endif
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/