|
发表于 2018-4-6 00:21:57
|
显示全部楼层
我用的庫是這個:
#include <MD_DS3231.h> //外掛 DS3231 RTC操作
在 SETUP() 中先初始化 3231 並讀取其值,有些站友詢問為何
停電後 3231 的時間也停了? 應該就是第二行的設定沒有執行,
3231 為了省電,原廠出貨時是設定 HALT ON (暫停工作)的狀態:
RTC.control(DS3231_12H, DS3231_OFF); //設定 RTC 為 24 小時制
RTC.control(DS3231_CLOCK_HALT, DS3231_OFF); //設定 RTC 不暫停(工作)
//讀取時鐘值並存入暫存變數中
RTC.readTime();
YYYY = RTC.yyyy;
MM = RTC.mm;
DD = RTC.dd;
H = RTC.h;
M = RTC.m;
S = RTC.s;
要設定時間時,反向操作,將相關變數值更改後進行寫入:
RTC.yyyy = YYYY;
RTC.mm = MM;
RTC.dd = DD;
RTC.h = H;
RTC.m = M;
RTC.s = S;
RTC.dow=(int) RTC.calcDoW(RTC.yyyy, RTC.mm, RTC.dd); //自動計算日期應該是星期幾
RTC.writeTime();
不管先前的星期幾(RTC.dow)正不正確,在寫入時間時一併進行修正,
以後讀取就是正確的了,就是這麼簡單 ^^ |
|