410 lines
18 KiB
C
410 lines
18 KiB
C
|
/*******************************************************************************
|
|||
|
* @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****/
|
|||
|
|
|||
|
|