Нашел я пример, как раз того, что мне надо.
Код
NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC, ENABLE);
PWR_BackupAccessCmd(ENABLE);
// RTC clock source configuration ----------------------------------------
// Reset Backup Domain
BKP_DeInit();
// Enable LSE OSC
RCC_LSICmd(ENABLE);
// Wait till LSE is ready
while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);
// Select the RTC Clock Source
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
// Enable the RTC Clock
RCC_RTCCLKCmd(ENABLE);
// RTC configuration -----------------------------------------------------
// Wait for RTC APB registers synchronisation
RTC_WaitForSynchro();
// Set the RTC time base to 1s
RTC_SetPrescaler(32767);
// Wait until last write operation on RTC registers has finished
RTC_WaitForLastTask();
RTC_SetCounter(0);
// Wait until last write operation on RTC registers has finished
RTC_WaitForLastTask();
// Set the RTC Alarm after 3s
RTC_SetAlarm(3);
// Wait until last write operation on RTC registers has finished
RTC_WaitForLastTask();
RTC_ITConfig(RTC_IT_ALR,ENABLE);
В обработчике прерывания ничего не писал, просто поставил брейкпоинт.
Запускаю - брейкпоинт не срабатывает.
Мониторю через отладчик RTC->CNTL - инкрементируется, то есть часы тикают...
Куда копать?
Сообщение отредактировал Salamander - Dec 22 2013, 08:24