STM32F373 RTC FLAG_LSERDY не работает?
Суть вопроса - хочу знать, что произошел отказ часового кварца и перейти на LSI. Для этого проверяю состояние флага раз в 1 секунду
такой функцией:
// если произошел отказ кварца во время работы, перйдем на LSI
if ((RCC_GetFlagStatus(RCC_FLAG_LSERDY) == 0)){
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI); // Начинаем тактировать RTC от LSI
RTC_WaitForSynchro(); //Wait for RTC APB registers synchronisation
RTC_InitStructure.RTC_AsynchPrediv = 0x63;
RTC_InitStructure.RTC_SynchPrediv = 0x18F;
RTC_Init(&RTC_InitStructure);
}
Проблема в том, что при замыкании ножек кварца между собой, флаг не сбрасывается в ноль, но часы останавливаются. После отпускания идут нормально. Вроде в мануале:
Цитата
Set and cleared by hardware to indicate when the external 32 kHz oscillator is
stable. After the LSEON bit is cleared, LSERDY goes low after 6 external low-
speed oscillator clock cycles.
В чем подвох?