AnnaLi 发表于 2015-3-6 01:32:23

在STM32F429i Disco中想用两个Alarm, 没有产出中断信号,什么原...

**********
RTC_TimeTypeDef   RTC_TimeStructure;
RTC_AlarmTypeDefRTC_AlarmStructure;
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);
sec    =RTC_TimeStructure.RTC_Seconds;
min    =RTC_TimeStructure.RTC_Minutes;
hour   =RTC_TimeStructure.RTC_Hours;
   
            Alarm_Init();
            /*Alarm A */
            RTC_GetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure);
            RTC_AlarmCmd(RTC_Alarm_A, DISABLE);
            /* Disable the RTC Alarm A Interrupt */
            RTC_ITConfig(RTC_IT_ALRA, DISABLE);

            RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = (sec+0X01);
            RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = (min+0X01);
            RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = (hour+0X00);
            RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date;
            RTC_AlarmStructure.RTC_AlarmDateWeekDay = day;
            RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure);

            /* Enable the RTC Alarm A Interrupt */
            RTC_ITConfig(RTC_IT_ALRA, ENABLE);

            /* Enable the alarmA */
            RTC_AlarmCmd(RTC_Alarm_A, ENABLE);

            /*Alarm B */
            RTC_GetAlarm(RTC_Format_BIN, RTC_Alarm_B, &RTC_AlarmStructure);
            RTC_AlarmCmd(RTC_Alarm_B, DISABLE);
            /* Disable the RTC Alarm B Interrupt */
            RTC_ITConfig(RTC_IT_ALRB, DISABLE);
            RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = (sec+0X01);
            RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = (min+0X00);
            RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = (hour+0X00);
            RTC_AlarmStructure.RTC_AlarmDateWeekDaySel =    RTC_AlarmDateWeekDaySel_Date;
            RTC_AlarmStructure.RTC_AlarmDateWeekDay = day;
            RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_B, &RTC_AlarmStructure);

            /* Enable the RTC Alarm B Interrupt */
            RTC_ITConfig(RTC_IT_ALRB, ENABLE);
            /* Enable the alarmB */
            RTC_AlarmCmd(RTC_Alarm_B, ENABLE);
*****************
void RTC_Alarm_IRQHandler(void)
{
/* Clear the EXTIL line 17 */
EXTI_ClearITPendingBit(EXTI_Line17);

/* Check on the AlarmA falg and on the number of interrupts per Second (60*8) */
if (RTC_GetITStatus(RTC_IT_ALRA) != RESET)
{
//    STM_EVAL_LEDOn(LED4);
    alarm_now2 = 0;
    /* Clear RTC AlarmA Flags */
    RTC_ClearITPendingBit(RTC_IT_ALRA);
    RTC_HandlerFlag = ENABLE;
}
    if (RTC_GetITStatus(RTC_IT_ALRB) != RESET)
{
//    STM_EVAL_LEDOn(LED4);
   alarm_now = 0;
    /* Clear RTC AlarmA Flags */
    RTC_ClearITPendingBit(RTC_IT_ALRB);
    RTC_HandlerFlag = ENABLE;
}
}
~~~~~~~~~~~~~~~~~~~~~~

错在哪里?

拼命三郎 发表于 2015-3-6 08:03:31

枫叶-400015 发表于 2019-7-16 15:18:14

我的STM32L496,也是运行模式Alarm可以进中断,休眠模式Alarm可以唤醒,但是无法进入中断
页: [1]
查看完整版本: 在STM32F429i Disco中想用两个Alarm, 没有产出中断信号,什么原...