реклама на сайте
подробности

 
 
> STM32L, RTC OUT alarm - PC13, Вопрос
Antonov
сообщение May 14 2015, 08:41
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 9-02-15
Пользователь №: 85 032



Здравствуйте.

Может, кто-нибудь пробовал выводить сигнал об 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 не дергается.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016