Перехожу в режим "СТОП"
Потребление 3 мкА
2.
Инициализирую часы.
Деинициализирую часы.
Перехожу в режим "СТОП"
Потребление 6 мкА
Почему после использования часов потребление больше ? Я же их отключаю.
Код: Выделить всё
/* инициализация часов реального времени
---------------------------------------------- */
void RTC_initialization (void) {
// разрешаем доступ к области резервных данных
PWR_RTCAccessCmd (ENABLE);
// включаем генератор на внешнем кварце 32 кГц.
RCC_LSEConfig (RCC_LSE_ON);
// ожидаем стабилизации
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET) {}
// устанавливаем как источник тактирования для часов
RCC_RTCCLKConfig (RCC_RTCCLKSource_LSE);
// разрешаем тактирование
RCC_RTCCLKCmd (ENABLE);
// ожидаем синхронизации
RTC_WaitForSynchro ();
// configure the RTC data register and RTC prescaler
RTC_InitTypeDef RTC_InitStructure;
RTC_InitStructure.RTC_AsynchPrediv = 0x7f;
RTC_InitStructure.RTC_SynchPrediv = 0xff;
RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24;
RTC_Init (&RTC_InitStructure);
// EXTI configuration
EXTI_InitTypeDef EXTI_InitStructure;
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_InitTypeDef NVIC_InitStructure;
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);
// configure the RTC wakeup clock source: CK_SPRE (1Hz)
RTC_WakeUpClockConfig (RTC_WakeUpClock_RTCCLK_Div16);
RTC_SetWakeUpCounter (1024);
// enable the RTC wakeup interrupt
RTC_ITConfig (RTC_IT_WUT, ENABLE);
/* Enable Wakeup Counter */
RTC_WakeUpCmd (ENABLE);
}
/* деинициализация часов реального времени
---------------------------------------------- */
void RTC_deinitialization (void) {
// разрешаем доступ к области резервных данных
PWR_RTCAccessCmd (ENABLE);
// Disable the RTC wakeup interrupt
RTC_ITConfig (RTC_IT_WUT, DISABLE);
/* Disable Wakeup Counter */
RTC_WakeUpCmd (DISABLE);
// запрещаем тактирование
RCC_RTCCLKCmd (DISABLE);
// выключаем генератор на внешнем кварце 32 кГц.
RCC_LSEConfig (RCC_LSE_OFF);
}




