Question
STM32F4Discovery : Using HSE clock source for RTC.
Posted on March 31, 2014 at 11:58
Dear community,
Knowing that the RTC manual stated that the LSI is not suitable for the RTC, I am trying to use the HSE clock source for the RTC. I initialized the clock and RTC but the i was unable to read the time. Can you please help? I initialized the clock as follows: RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); PWR_BackupAccessCmd(ENABLE); RCC_HSEConfig( RCC_HSE_ON ); while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET) {} RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div8); RCC_RTCCLKCmd(ENABLE); RTC_WaitForSynchro(); RTC_InitStructure.RTC_AsynchPrediv = 0x7C; RTC_InitStructure.RTC_SynchPrediv = 0x1F3F; RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24; RTC_Init(&RTC_InitStructure); RTC_TimeStructure.RTC_H12 = RTC_H12_AM; RTC_TimeStructure.RTC_Hours = 1; RTC_TimeStructure.RTC_Minutes = 0; RTC_TimeStructure.RTC_Seconds = 0; RTC_SetTime(RTC_Format_BCD, &RTC_TimeStructure); In order to read the clock i am using the following: RTC_GetTime(RTC_Format_BCD, &RTC_TimeStructure); uwMin = RTC_TimeStructure.RTC_Minutes; uwSecond = RTC_TimeStructure.RTC_Seconds; uwSecond_h = (((uint8_t)(RTC_TimeStructure.RTC_Seconds & 0xF0) >> 0x04)+ 0x30); uwSecond_l = (((uint8_t)(RTC_TimeStructure.RTC_Seconds & 0x0F)) + 0x30); uwSecondfraction = 1000 - ((uint32_t)((uint32_t)RTC_GetSubSecond() * 1000) / (uint32_t)0x3FF); Unfortunately all the variables (uwMin, uwSecond, uwSecond_h, uwSecond_l, uwSecondfraction) has 0 as value. Thank you in advance for the help. Best regards, Marc #stm32f4discovery-rcc-hse-rtc