操作如下代码,处理休眠定时器唤醒8S钟直接继续进入休眠,测量电路电压还有1.5ma
硬件上只有一个电源芯片和MCU复位电路,电源芯片实测3ua电流,已经断开jlink。请问哪里还需要关闭。
/**********关闭除低功耗中断外的其它中断,防止其它中断打断休眠**********************/
/*例如关闭MCPWM中断:NVIC_DisableIRQ(MCPWM_IRQn);*/
//关闭各大模块
Reg_Reset();
NVIC_DisableIRQ(HALL_IRQn);//使能hall中断
NVIC_DisableIRQ (MCPWM_IRQn);
NVIC_DisableIRQ(TIMER3_IRQn); /* 使能UTimer定时器中断*/
NVIC_DisableIRQ(ADC0_IRQn); /* enable the ADC0 interrupt */
NVIC_DisableIRQ (TIMER0_IRQn);
//NVIC_DisableIRQ (CMP_IRQn); /* 打开比较器中断 */
//NVIC_DisableIRQ(PWRDN_IRQn); /* 打开电源检测中断 */
NVIC_DisableIRQ(UART0_IRQn); //使能UART0定时器中断
/******************************************************************************/
Switch2HRC(); /*关闭高速时钟与BGP和掉电检测电路*/
SYS_FallSleep(); /*进入休眠模式*/
SYS_UtimerFallSleep(); /*在IO唤醒模式中,判断是Utimer唤醒则继续进入休眠*/
Switch2PLL(); /*开启高速时钟与BGP和掉电检测电路*/
/***********************************复原关闭的外的其它中断**********************/
/*例如开启MCPWM中断:NVIC_EnableIRQ(MCPWM_IRQn);*/
/******************************************************************************/
NVIC_EnableIRQ(HALL_IRQn);//使能hall中断
NVIC_EnableIRQ (MCPWM_IRQn);
NVIC_EnableIRQ(TIMER3_IRQn); /* 使能UTimer定时器中断*/
NVIC_EnableIRQ(ADC0_IRQn); /* enable the ADC0 interrupt */
NVIC_EnableIRQ (TIMER0_IRQn);
NVIC_EnableIRQ (CMP_IRQn); /* 打开比较器中断 */
NVIC_EnableIRQ(PWRDN_IRQn); /* 打开电源检测中断 */
NVIC_EnableIRQ(UART0_IRQn); //使能UART0定时器中断 |