/* RTCClockSelection This sketch shows how to select one of the RTC clock: - LSI (default) - LSE - HSE Refer to board datasheet to know available clock Creation 15 March 2018 by Wi6Labs Modified 03 Jul 2020 by Frederic Pillon for STMicroelectronics This example code is in the public domain. https://github.com/stm32duino/STM32RTC */ #include /* Get the rtc object */ STM32RTC& rtc = STM32RTC::getInstance(); /* Change these values to set the current initial time */ const byte seconds = 0; const byte minutes = 0; const byte hours = 16; /* Change these values to set the current initial date */ /* Monday 15th June 2015 */ const byte weekDay = 1; const byte day = 15; const byte month = 6; const byte year = 15; void setup() { Serial.begin(9600); // Select RTC clock source: LSI_CLOCK, LSE_CLOCK or HSE_CLOCK. // By default the LSI is selected as source. rtc.setClockSource(STM32RTC::LSE_CLOCK); rtc.begin(); // initialize RTC 24H format // Set the time rtc.setHours(hours); rtc.setMinutes(minutes); rtc.setSeconds(seconds); // Set the date rtc.setWeekDay(weekDay); rtc.setDay(day); rtc.setMonth(month); rtc.setYear(year); // you can use also //rtc.setTime(hours, minutes, seconds); //rtc.setDate(weekDay, day, month, year); } void loop() { // Print date... Serial.printf("%02d/%02d/%02d ", rtc.getDay(), rtc.getMonth(), rtc.getYear()); // ...and time Serial.printf("%02d:%02d:%02d.%03d\n", rtc.getHours(), rtc.getMinutes(), rtc.getSeconds(), rtc.getSubSeconds()); delay(1000); }