Страница 1 из 1

stm32f4discovery проблема с RTC

Добавлено: Пт июн 20, 2014 09:47:19
eess9
Привет, уважаемые форумчане!

Осваиваю 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);
но все время вижу день недели, день и месяц в 1, а остальное (секунды, минуты, часы и год) в 0. Т.е. RTC не считает. Похоже, что внутренний генератор не заводится, но почему понять не могу. Вроде при инициализации жду его готовности, и он выставляет флаг что готов. Собственные мысли уже кончились, подскажите кто может в чем может быть проблема. Заранее спасибо!

Re: stm32f4discovery проблема с RTC

Добавлено: Пт июн 20, 2014 11:26:33
balmer
Судя по коду RTC_Init вызов функции RTC_EnterInitMode перед ней явно лишний.
Ну и совет таки проверять - какие коды ошибок функции возвращают, чтобы понять на каком этапе затык....

Re: stm32f4discovery проблема с RTC

Добавлено: Пт июн 20, 2014 13:23:56
Pavel_1978

Re: stm32f4discovery проблема с RTC

Добавлено: Пт июн 20, 2014 14:34:44
eess9
Спасибо всем. Все оказалось куда проще, банальная моя невнимательность.

Re: stm32f4discovery проблема с RTC

Добавлено: Сб июн 21, 2014 08:37:44
Pavel_1978
Что было? Напишите чтоб другим на ваши грабли не наступать.

Re: stm32f4discovery проблема с RTC

Добавлено: Пн июн 23, 2014 18:44:44
eess9
я же говорю что невнимательность. Забыл засунуть функцию инициализации RTC в main, вернее засунул и закоммитил пока другие куски кода отлаживал. Потом вернулся к RTC и долго взрывал себе мозг почему же не работает :oops: :facepalm:

Re: stm32f4discovery проблема с RTC

Добавлено: Пн июн 23, 2014 21:10:13
Pavel_1978
Бывает)))