Prevent lockup on boot in case of 32kHz oscillator failure (fix #5294)

This commit is contained in:
Kilrah
2017-11-08 13:02:32 +01:00
parent e2858dbb03
commit fdec738485
@@ -64,7 +64,15 @@ void rtcInit()
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
PWR_BackupAccessCmd(ENABLE);
RCC_LSEConfig(RCC_LSE_ON);
while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);
// Prevent lockup in case of 32kHz oscillator failure
uint32_t i = 0;
while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
{
if ( ++i > 1000000 )
return;
}
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
RCC_RTCCLKCmd(ENABLE);
RTC_WaitForSynchro();