Table of Contents

IrtcSet()

IrtcSet() sets the RTC date and time.

IrtcSet command operation flow

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)

Commands

Command Arguments Return Value Operation
IrtcSet(year, month, day, hour, minute, second) uint16_t year2000~2099
uint8_t month1~12
uint8_t day — Valid day of the specified month
uint8_t hour0~23
uint8_t minute0~59
uint8_t second0~59
bool Sets the RTC date and time.

Example

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);
}

Precautions

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.

Built-in Commands in the Same Category

← Built-in Command List