|

楼主 |
发表于 2020-4-11 16:02:18
|
显示全部楼层
初始化:
RCC_PERCLK_SetableEx(ANACCLK, ENABLE);
FDETState = 0;
RCC_FDET_ISR_LFDETIF_Clr();
RCC_FDET_IER_LFDET_IE_Setable(ENABLE);
NVIC_DisableIRQ(LFDET_IRQn);
NVIC_SetPriority(LFDET_IRQn, 2);
NVIC_ClearPendingIRQ(LFDET_IRQn);
NVIC_EnableIRQ(LFDET_IRQn);
中断:
void LFDET_IRQHandler(void) //XTLF停振检测中断
{
if(SET == RCC_FDET_ISR_LFDETIF_Chk())
{
RCC_FDET_IER_LFDET_IE_Setable(DISABLE);
RCC_FDET_ISR_LFDETIF_Clr();
FDETState = 1;
}
}
定时检测:
if(FDETState)
{
if(FDETState == 1)
{//停振
FDETState = 255;
}
if(SET == RCC_FDET_ISR_LFDETO_Chk())
{恢复
FDETState = 0;
RCC_FDET_ISR_LFDETIF_Clr();
RCC_FDET_IER_LFDET_IE_Setable(ENABLE);
}
} |
|