Осваиваю stm32f4xx на основе платы stm32f4discovery. Возник затык с запуском RTC. Внешнего источника на плате нет (отсутствует часовой кварц), поэтому использую внутренний. Инициализирую так:
Код: Выделить всё
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); // Allow access to RTC
PWR_BackupAccessCmd(ENABLE); // Select the RTC Clock Source
RCC_BackupResetCmd(ENABLE);
RCC_BackupResetCmd(DISABLE);
RCC_LSICmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET) ; // Wait till LSI is ready
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
RCC_RTCCLKCmd(ENABLE);
// Wait for RTC APB registers synchronisation
RTC_WaitForSynchro();
RTC_EnterInitMode();
RTC_StructInit(&rtc);
rtc.RTC_HourFormat = RTC_HourFormat_24;
rtc.RTC_AsynchPrediv = 0x7D - 1;
rtc.RTC_SynchPrediv = 0xFF - 1;
RTC_Init(&rtc);
WRITE_TIME_TO_RTC();
RTC_ExitInitMode();
PWR_BackupAccessCmd(DISABLE);Код: Выделить всё
RTC_GetTime(RTC_Format_BIN, &RtcTime);
RTC_GetDate(RTC_Format_BIN, &RtcDate);


