IrtcSet() sets the RTC date and time.
bool IrtcSet(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
bool IrtcSet(uint16_t year, uint8_t month, uint8_t day, uint8_t dayOfWeek, uint8_t hour, uint8_t minute, uint8_t second)
| Command | Arguments | Return Value | Operation |
|---|---|---|---|
IrtcSet(year, month, day, hour, minute, second) | uint16_t year — 2000~2099uint8_t month — 1~12uint8_t day — Valid day of the specified monthuint8_t hour — 0~23uint8_t minute — 0~59uint8_t second — 0~59 | bool | Sets the RTC date and time. |
void setup() { Serial.begin(115200); if (!IrtcBegin()) return; // Check the DS3231 RTC connection and begin operation. bool valid = false; if (IrtcTimeValid(valid) && !valid) { // Check whether the RTC time is reliable. IrtcSet(2026, 9, 7, 9, 0, 0); // Set the RTC date and time. IrtcClearOscillatorStopFlag(); // Clear the oscillator-stop flag. } } void loop() { IrtcDateTime now; uint32_t unixTime = 0; float rtcTemperature = 0.0F; if (IrtcRead(now) && IrtcUnixTime(unixTime) && IrtcGetTemperature(rtcTemperature)) { // Return the RTC's internal temperature. / Return the current time as Unix time. / Read the RTC date and time. Serial.print(unixTime); Serial.print(','); Serial.println(rtcTemperature, 2); } delay(1000); }
Run each device's corresponding Begin command first. Check I²C addresses and pin sharing; if the bool return value is false, inspect wiring and power.