新产品,要求电池供电,低功耗,从淘宝买的HC32L021,程序每秒2次RTC唤醒,电流50ua,外围也没啥耗电的,外置低频32768给RTC.
外围电路也检查过没问题,这电流太大了,低功耗还有啥注意的,
void in_sleep(void)
{
// printf("\r\n---------------------------------------");
// SYSCTRL_PeriphClockDisable(PeriphClockLpuart1);
FLASH_LowPowerEnable(); /* 配置FLASH为低功耗模式 */
LPM_GotoDeepSleep(FALSE);//唤醒后不再自动进入深度睡眠
FLASH_LowPowerDisable();
// SYSCTRL_PeriphClockEnable(PeriphClockLpuart1);
sleep_count++;
}
void SysClockConfig(void)
{
stc_sysctrl_clock_init_t stcSysClockInit = { 0 };
/* 结构体初始化 */
SYSCTRL_ClockStcInit(&stcSysClockInit);
stcSysClockInit.u32SysClockSrc = SYSCTRL_CLK_SRC_RC48M_6M; /* 选择系统默认RC48M 6MHz作为Hclk时钟源 */
stcSysClockInit.u32HclkDiv = SYSCTRL_HCLK_PRS_DIV1; /* Hclk 1分频 */
SYSCTRL_ClockInit(&stcSysClockInit); /* 系统时钟初始化 */
}
void XTL_ClockConfig(void)
{
SYSCTRL_XTLDrvConfig(SYSCTRL_XTL_AMP3, SYSCTRL_XTL_DRV3); /* 设置XTL晶振参数,使能目标时钟,SYSTEM_XTL = 32768Hz */
SYSCTRL_XTLStableTimeSet(SYSCTRL_XTL_STB_CYCLE16384); /* 置XTL稳定等待时间 */
printf("\r\n打开XTL ");
SYSCTRL_ClockSrcEnable(SYSCTRL_CLK_SRC_XTL); /* 使能XTL时钟 */
}
|
|