Здравствуйте.
Может, кто-нибудь пробовал выводить сигнал об RTC alarm на порт. Как я понял, он должен выводится на PC13 (МК stm32L), но у меня не получается. Привожу свой код.
CODE
void RTC_alarm_config(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
RTC_AlarmTypeDef RTC_AlarmStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RTC_AlarmCmd(RTC_Alarm_A, DISABLE);
EXTI_ClearITPendingBit(EXTI_Line17);
EXTI_InitStructure.EXTI_Line = EXTI_Line17;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = RTC_Alarm_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
// time independent date
RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_DateWeekDay;
RTC_AlarmStructure.RTC_AlarmTime.RTC_H12 = RTC_HourFormat_24;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = 15;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = 0;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = 5;
RTC_AlarmStructure.RTC_AlarmDateWeekDay = 1;
RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_WeekDay;
RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure);
//RTC_AlarmSubSecondConfig(RTC_Alarm_A, 0xFF, RTC_AlarmSubSecondMask_SS14_5);
RTC_OutputConfig(RTC_Output_AlarmA, RTC_OutputPolarity_Low);
/* Enable AlarmA interrupt */
RTC_ITConfig(RTC_IT_ALRA, ENABLE);
/* Enable the alarmA */
RTC_AlarmCmd(RTC_Alarm_A, ENABLE);
RTC_ClearITPendingBit(RTC_IT_ALRA);
}
CODE
rtc_init();
RTC_alarm_config();
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //(_OUT, _AF, _AN)
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_400KHz; //(_2MHz, _10MHz, 40MHz)
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //(_NOPULL, _UP)
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //(_0 ... _15)
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //(_PP - push/pull, _OD - open drain)
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource13, GPIO_AF_RTC_AF1);
Прерывание по alarm работает, но ножка PC13 не дергается.