Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с RTC в stm32f*
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
juvf
процессор stm32f401. проинициализировал RTC. Работают. Вычитываю дату. При первой вычитке всё вычиталось нормально. дата 07.02.2017. часы перешли через 23:59:59, сутки увеличились.
читаю дату, получаю 07.02.2017. читаю регистр RTC_DT в переменную, в переменной 0x00172207 (7-е число), останавливаюсь в дебаге после вычитки ДТ в переменную, в переменной 07, смотрю регистры часов - в ДТ 0x00172208, см рис, вотчвиндоу, из разных мест программы в массив вычитал регистр RTC_DT и сразуже остановился. тот же вотчвиндоу показывает что в регистре RTC_DT дата 08. вобщем часы идут... идут... сутки, двое трое.... при попытке вычитать дату - дата стоит мертвая, как при первом чтении.

вычитываю кодом
tmpreg[1] = *(uint32_t*)0x40002804;
или
tmpreg[1] = (uint32_t)(RTC->DR & ((uint32_t)0x00FFFF3F) );
результат одинаковый

такое чувство, что этот регистр кэшируется где-то, при первой вычитке прочитывается нормально, а потом из кеша старое значение берётся. Оптимизация отключена. компилятор IAR.... что может быть?
Georg_M_B0
Попробуй в регистре RTC_CR поставить бит BYPSHAD = 1.
juvf
Цитата(Georg_M_B0 @ Feb 9 2017, 15:18) *
Попробуй в регистре RTC_CR поставить бит BYPSHAD = 1.
Да, то что надо, в инит добавил
RTC_BypassShadowCmd(ENABLE);
Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.