Страница 1 из 1
STM32F4DISCOVERY + RTC
Добавлено: Вт июл 23, 2013 21:54:19
bishop-strip
Добрый день, хочу использовать часы релаьного времени RTC.
Скажите, есть работающий пример, и как использовать эти часы?
RTC_Init() возвращает ERROR.
В чем проблема? Заранее спасибо!
Re: STM32F4DISCOVERY + RTC
Добавлено: Вт июл 23, 2013 22:13:20
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);
}