реклама на сайте
подробности

 
 
> У кого-нибудь работают часы на STM32F4xx?, Есть какая-то хитрость в запуске?
Dr.Alex
сообщение Dec 15 2014, 10:51
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



У меня часовой кварц генерит, частоту даже можно вывести на MCO1, но после установки бита INIT бит INITF никогда не встаёт, и проинициализировать часы соотвецно невозможно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
adnega
сообщение Dec 15 2014, 13:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Все работает.

CODE
void init_RTC(void)
{
PWR->CR |= (1 << PWR_CR_DPB);

RTC->WPR = 0xCA;
RTC->WPR = 0x53;

RCC->BDCR =
(1 << RCC_BDCR_LSEON)
| (RCC_RTC_LSE_CLOCK << RCC_BDCR_RTCSEL)
| (1 << RCC_BDCR_RTCEN);

RTC->ISR |= (1 << RTC_ISR_INIT);

con_str("\n\r{1}\n\r"); con_start();
while(~RTC->ISR & (1 << RTC_ISR_INITF));
con_str("\n\r{2}\n\r"); con_start();

RTC->PRER = (0x7F << RTC_PRER_PREDIV_A) | (0xFF << RTC_PRER_PREDIV_S);
RTC->PRER = (0x7F << RTC_PRER_PREDIV_A) | (0xFF << RTC_PRER_PREDIV_S);

RTC->TR = 0;
RTC->DR = 0;
RTC->ALRMAR = (1UL << 31) | (1 << 24) | (2 << 4);

RTC->CR = (0 << RTC_CR_FMT) | (1 << 21) | (1 << 8);

RTC->TAFCR = (1 << 18);

RTC->ISR &= ~((1 << RTC_ISR_INIT) | (1 << RTC_ISR_ALRAF));

con_str("\n\r{3}\n\r"); con_start();
while(~RTC->ISR & (1 << RTC_ISR_RSF));
con_str("\n\r{4}\n\r"); con_start();

RTC->WPR = 0xFF;
}

а перед этим
RCC->APB1ENR = 0
| (0 << RCC_APB1_TIM12)
| (1 << RCC_APB1_PWR);

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 20:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016