- #include <DS1302.h>
- DS1302 rtc(2,3,4); //对应DS1302的RST,DAT,CLK
- void initRTCTime(void)
- {
- rtc.write_protect(false); //关闭写保护
- rtc.halt(false); //清除时钟停止标志
- Time t(2025, 11, 30, 15, 0, 0, 1); //新建时间对象,最后位星期,周日为1
- rtc.time(t); //向DS1302设置时间数据
- }
- void printTime()
- {
- Time tim= rtc.time(); //从DS1302获取时间数据
- char buf[50];
- snprintf(buf,sizeof(buf), "%04d-%02d-%02d %02d:%02d:%02d %01d",
- tim.yr, tim.mon,tim.date, tim.hr, tim.min, tim.sec, tim.day);
- Serial.println(buf);
- }
- void setup() {
- Serial.begin(9600);
-
- // 初始化RTC
- initRTCTime();
- }
- void loop() {
- printTime();
- delay(1000); // 每秒更新一次
- }
复制代码
|