因为FCT工具没有做休眠测试,所以我将代码COPY到MAIN函数中执行,如下所示。进入休眠时设备电流为2MA,唤醒后设备正常运行。
void sys_pro_test_EenterSleep(void)
{
static u8 i=1;
static u32 sys_mode;
while(i)
{
sensor_slp_set_int();
scom_drv_pwr_off();
gsm_drv_pwr_off();
gps_drv_pwr_off();
bsp_drv_can_close();
CAN1_LINE_STANDBY_MODE();
bsp_drv_klinepw_close();
ADC_Cmd(ADC1, DISABLE);
bsp_drv_interrupt_cfg(SYS_SLP_STOP);
bsp_drv_extint_cfg();
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);
uprintf(SYS,"sleep enter!\r\n");
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
uprintf(SYS,"sleep JZZZH!\r\n");
//»½ÐÑ
bsp_drv_system_init(SYS_WORK);
uprintf(SYS,"sleep exit!\r\n");
bsp_drv_obd_int_off();
bsp_drv_klinepw_open();
CAN1_LINE_NORMAL_MODE();
ADC_Cmd(ADC1, ENABLE);
GPS_LED_CTRL(LED_STA_ON);
gps_drv_led_on();
gps_drv_pwr_on();
gsm_drv_pwr_on(); //GSM power on
gsm_drv_led_on();
GSM_LED_CTRL(LED_STA_ON);
scom_drv_pwr_on();
accel_init();
}
}