stm32f4discovery проблема с RTC

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение 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 не считает. Похоже, что внутренний генератор не заводится, но почему понять не могу. Вроде при инициализации жду его готовности, и он выставляет флаг что готов. Собственные мысли уже кончились, подскажите кто может в чем может быть проблема. Заранее спасибо!
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Сообщение balmer »

Судя по коду RTC_Init вызов функции RTC_EnterInitMode перед ней явно лишний.
Ну и совет таки проверять - какие коды ошибок функции возвращают, чтобы понять на каком этапе затык....
Реклама
Опытный кот
Аватара пользователя
Сообщения: 830
Зарегистрирован: Пт ноя 16, 2007 11:21:37

Сообщение Pavel_1978 »

Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение eess9 »

Спасибо всем. Все оказалось куда проще, банальная моя невнимательность.
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 830
Зарегистрирован: Пт ноя 16, 2007 11:21:37

Сообщение Pavel_1978 »

Что было? Напишите чтоб другим на ваши грабли не наступать.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение eess9 »

я же говорю что невнимательность. Забыл засунуть функцию инициализации RTC в main, вернее засунул и закоммитил пока другие куски кода отлаживал. Потом вернулся к RTC и долго взрывал себе мозг почему же не работает :oops: :facepalm:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 830
Зарегистрирован: Пт ноя 16, 2007 11:21:37

Сообщение Pavel_1978 »

Бывает)))
Ответить

Вернуться в «ARM»