ch582M 低功耗的问题,麻烦解答一下

image.png

由于rc不准,在我的项目里面使用了外部RTC晶振,但是在使用的过程中发现, 问题:

1.在进入低功耗后,MCU 无法被rtc唤醒 ,或只能唤醒一次

猜测是进入低功耗后,rtc不起振,无法通过中断唤醒 ,使用内部的rtc晶振倒是可以唤醒程序



请问官方在测试的时候遇到过类似的问题吗?

或者在电路设计的时候需要注意些什么?

下面是我的程序

int?main()
{
uint8_t?len;

SetSysClock(CLK_SOURCE_PLL_60MHz);
GPIOA_ModeCfg(GPIO_Pin_All,?GPIO_ModeIN_Floating);
GPIOB_ModeCfg(GPIO_Pin_All,?GPIO_ModeIN_Floating);


/*?配置串口1:先配置IO口模式,再配置串口?*/


GPIOB_SetBits(GPIO_Pin_13);
GPIOB_ModeCfg(GPIO_Pin_12,?GPIO_ModeIN_PU);??????//?RXD-配置上拉输入
GPIOB_ModeCfg(GPIO_Pin_13,?GPIO_ModeOut_PP_5mA);?//?TXD-配置推挽输出,注意先让IO口输出高电平
GPIOPinRemap(ENABLE,RB_PIN_UART1);
UART1_ByteTrigCfg(UART_1BYTE_TRIG);
UART1_DefInit();


HAL_TimeInit();
PFIC_EnableIRQ(RTC_IRQn);/*?使能RTC中断?*/

printf("start=%d\n",intFlag);
while(1){


printf("intFlag=%d\n",intFlag);
mDelaymS(1000);

RTC_TRIGFunCfg(32768*5);
PWR_PeriphWakeUpCfg(?ENABLE,?RB_SLP_RTC_WAKE,?Long_Delay?);
HSECFG_Current(HSE_RCur_100);

}
}

__INTERRUPT
__HIGH_CODE
void?RTC_IRQHandler(void)
{

if(RTC_GetITFlag(RTC_TMR_EVENT)){
RTC_ClearITFlag(RTC_TMR_EVENT);
}
if(RTC_GetITFlag(RTC_TRIG_EVENT)){
RTC_ClearITFlag(RTC_TRIG_EVENT);
}
RTCTigFlag=1;
intFlag++;
}

image.png

已解决


只有登录才能回复,可以选择微信账号登录