中级会员
 
- 积分
- 466
- 金钱
- 466
- 注册时间
- 2018-4-26
- 在线时间
- 78 小时
|
1金钱
我再做一个心跳中断,RTC实现32ms一次中断,在参考例程之后有一个问题不了解,就是在配置RTC中断的时候为什么还要配置EXTI中断,时间到了不就直接执行中断服务函数了么
[mw_shl_code=c,true]static void RTC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RTC_InitTypeDef RTC_InitStructure;
/* Enable the PWR clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE);
//RTC ê±ÖóÔ′ÅäÖà ѡÔñLSE
RTC_Configuration();
/* Calendar Configuration */
RTC_InitStructure.RTC_AsynchPrediv = 127;//0x7F;
RTC_InitStructure.RTC_SynchPrediv = 255; //0x120; /* (37KHz / 128) - 1 = 0x120*/
RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24;
if(RTC_Init(&RTC_InitStructure) == ERROR)
{
printf("Rtc_Init failed\r\n");
}
RTC_CalibOutputCmd(DISABLE);
/* EXTI configuration *******************************************************/
EXTI_ClearITPendingBit(EXTI_Line20);
EXTI_InitStructure.EXTI_Line = EXTI_Line20;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
/* Enable the RTC Wakeup Interrupt */
NVIC_InitStructure.NVIC_IRQChannel = RTC_WKUP_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
//ê×ÏèÅäÖÃWAKEUP·ÖÆμÏμêy֮ǰDèòa1رÕRTC_WAKEUPμÄê±Öó
// The WakeUp Clock source can only be changed when the RTC WakeUp
// is disabled (Use the RTC_WakeUpCmd(DISABLE))
RTC_WakeUpCmd(DISABLE);
/* Configure the RTC WakeUp Clock source: CK_SPRE (1Hz) */
RTC_WakeUpClockConfig(RTC_WakeUpClock_CK_SPRE_16bits);
RTC_SetWakeUpCounter(0x0);
/* Enable the RTC Wakeup Interrupt */
RTC_ITConfig(RTC_IT_WUT, ENABLE);
/* Enable Wakeup Counter */
RTC_WakeUpCmd(ENABLE);
}
//RTC WAKE UPÖD¶Ï·tÎñoˉêy
void RTC_WKUP_IRQHandler(void)
{
if(RTC_GetFlagStatus(RTC_FLAG_WUTF)==SET)//WK_UPÖD¶Ï?
{
RTC_ClearFlag(RTC_FLAG_WUTF); //Çå3yÖD¶Ï±êÖ¾
//LED1=!LED1;
}
EXTI_ClearITPendingBit(EXTI_Line22);//Çå3yÖD¶ÏÏß22μÄÖD¶Ï±êÖ¾
}[/mw_shl_code]
我查了一些资料说了WAKE_UP唤醒键,有人可以解释一波么
|
|