Set control register to low in ds3231 rtc
I also have a DS3231 RTC in my robot project.  Here's my complete setup code.  This can be placed anywhere in setup():  I don't think you have to mess with individual registers to get what you want.
    if (rtc.begin()) //02/19/19 this now returns FALSE if RTC doesn't respond
    {
        Serial.println(&quot;Found RTC...&quot;);
        delay(100);
        bRTCLostPower = rtc.lostPower(); //added 10/17/18
        mySerial.printf(&quot;rtc.lostPower() reports %d\n&quot;, bRTCLostPower);

        if (rtc.lostPower())
        {
            Serial.println(&quot;RTC lost power.  Setting RTC to last compile time&quot;);
            rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));// sets RTC to last compile date/time
        }

#ifdef FORCE_RTC_TO_LAST_COMPILE_TIME
        Serial.println(&quot;Forcing RTC to last compile time&quot;);
        rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));// sets RTC to last compile date/time
#endif 

        DateTime now = rtc.now();
        char buffer[100];
        memset(buffer, '\0', 100);
        mySerial.printf(&quot;Retrieving Date/Time from RTC with rtc.now() =  %ld\n&quot;, now.unixtime());
        GetDayDateTimeStringFromDateTime(now, buffer);
        Serial.print(&quot;Date/Time: &quot;); Serial.println(buffer);
        RTC_Avail = true;
    }
    else
    {
        Serial.println(&quot;Couldn't find RTC. Real-time clock functions won't be available&quot;);
        RTC_Avail = false; //use this instead
    }

    if (RTC_Avail &amp;&amp; rtc.lostPower())
    {
        DateTime Comp_dt = DateTime(F(__DATE__), F(__TIME__)); //__DATE__ &amp; __TIME__ are environment variables)
        uint8_t mydayofweek = Comp_dt.dayOfTheWeek();  //returns 0 for Sunday, 6 for Saturday dayOfTheWeek
        int mymonth = Comp_dt.month();
        int myday = Comp_dt.day();
        int myyear = Comp_dt.year();
        int myhour = Comp_dt.hour();
        int mymin = Comp_dt.minute();
        int mysec = Comp_dt.second();
        long unixtime = Comp_dt.unixtime();
        char* dayofweek = (char*)daysOfTheWeek[mydayofweek];

        Serial.print(&quot;day of week value = &quot;); Serial.println(mydayofweek);
        Serial.print(&quot;day of week value = &quot;); Serial.println(Comp_dt.dayOfTheWeek());

        mySerial.printf(&quot;RTC lost power - setting to datetime of last compile %ld (%s %4d/%02d/%02d at %02d:%02d:%02d)\n&quot;,
            unixtime, dayofweek, myyear, mymonth, myday, myhour, mymin, mysec);

        rtc.adjust(Comp_dt);
    }