作为一个更大项目的一部分,我正在开发这个 Arduino 测试应用程序。我已将我的 Arduino 连接到 Grove RTC(实时时钟 DS1307)模块,该模块现在在我的串行监视器中显示日期和时间。然而年份是错误的。如下图所示,它在年份字段中显示值 46。
下面是我用来获取日期和时间然后打印出来的两种方法。我从 tmElements 结构的 Year 字段中获取年份值。tmElements 类型驻留在 Time 库中。
// Gets date and time and prints out in "DD/MM/YYYY - HH:MM:SS" format.
void getTime(){
tmElements_t tm;
if (RTC.read(tm)){
getFormattedValue(tm.Day);
Serial.print("/");
getFormattedValue(tm.Month);
Serial.print("/");
Serial.print(tm.Year);
Serial.print(" - ");
getFormattedValue(tm.Hour);
Serial.print(":");
getFormattedValue(tm.Minute);
Serial.print(":");
getFormattedValue(tm.Second);
Serial.println();
}
}
// Formats the time value to two digits. Example: if hour is 7 it will be formatted as 07.
void getFormattedValue(int number) {
if (number >= 0 && number < 10) {
Serial.write('0');
}
Serial.print(number);
}
我怎么会得到这个错误的值?有人可以指导我正确的方向吗?