STM32F4DISCOVERY + RTC

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Открыл глаза
Сообщения: 71
Зарегистрирован: Чт окт 28, 2010 11:20:39

Сообщение bishop-strip »

Добрый день, хочу использовать часы релаьного времени RTC.
Скажите, есть работающий пример, и как использовать эти часы?
RTC_Init() возвращает ERROR.
В чем проблема? Заранее спасибо!
Реклама
Открыл глаза
Сообщения: 71
Зарегистрирован: Чт окт 28, 2010 11:20:39

Сообщение bishop-strip »

Решил проблему:
Спойлерvoid InitRTC()
{
RTC_InitTypeDef rITD;

RCC->APB1ENR|=RCC_APB1ENR_PWREN;
PWR->CR|=PWR_CR_DBP;
RCC->CSR|=RCC_CSR_LSION;
while(!(RCC->CSR&RCC_CSR_LSIRDY));
if(RTC->ISR&RTC_ISR_INITS)return;
RCC->BDCR|=RCC_BDCR_BDRST;
RCC->BDCR&=~RCC_BDCR_BDRST;
RCC->BDCR&=~RCC_BDCR_RTCSEL;
RCC->BDCR|=(RCC_BDCR_RTCSEL_1);
RCC->BDCR|=RCC_BDCR_RTCEN;
RTC->WPR=0xCA;
RTC->WPR=0x53;
RTC->ISR|=RTC_ISR_INIT;
while(!(RTC->ISR&RTC_ISR_INITF));
RTC->PRER=249;
RTC->PRER=249|(127<<16);
RTC->CR|=RTC_CR_FMT;
RTC->ISR&=~RTC_ISR_INIT;
RTC->WPR=0;
RTC->WPR=0;

RTC_StructInit(&rITD);
RTC_EnterInitMode();
RTC_Init(&rITD);
RTC_SetTime(RTC_Format_BCD, &rTime);
RTC_ExitInitMode();

}

void GetTimeRTC()
{
RTC_GetTime(RTC_Format_BCD, &rTime);
}
Реклама
Ответить

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