Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F373 RTC FLAG_LSERDY не работает?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Михась
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.


В чем подвох?

Михась
Что-то я повозился и пришел к выводу что LSERDY устанавливается один раз, а потом не меняется.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.