9 #include "Stm32F1Rtc.h"
11 #if defined(STM32F1xx)
16 bool Stm32F1Rtc::begin() {
17 bool isInit = isInitialized();
18 enableClockInterface();
27 void Stm32F1Rtc::init() {
29 RCC_BDCR |= RCC_BDCR_BDRST;
30 RCC_BDCR &= ~RCC_BDCR_BDRST;
31 RCC_BDCR |= RCC_BDCR_LSEON;
32 while ((RCC_BDCR & RCC_BDCR_LSERDY) == 0);
33 RCC_BDCR |= RCC_BDCR_RTCSEL_LSE;
34 RCC_BDCR |= RCC_BDCR_RTCEN;
41 RTC_INIT_REG |= RTC_INIT_FLAG;
42 disableBackupWrites();
50 uint32_t Stm32F1Rtc::getTime() {
51 uint16_t high1 = RTC_CNTH;
52 uint16_t low = RTC_CNTL;
53 uint16_t high2 = RTC_CNTH;
60 return (high1 << 16) | low;
63 void Stm32F1Rtc::setTime(uint32_t time) {
68 RTC_CNTH = time >> 16;
69 RTC_CNTL = time & 0xFFFF;
73 disableBackupWrites();