Arduino之DS1307模块的使用记录

先把代码贴上:

#include 
#include 
void printDateTime(DateTime dateTime); //声明一个函数

DS1307 RTC;  //这里像是一个python的类一样,是创建一个类的实例,很像是python

//*********************error*******************/  
//                    ERROR1 
//RTC_DS1307 RTC;
//********************error********************/

void setup() {
  Serial.begin(9600);
  // 设置波特率
  Wire.begin();
  // 开启总线,这个用于I2C的使用
  RTC.begin();
  // 初始化时钟
  RTC.adjust(DateTime(2015, 5, 21, 18, 0, 0));
  //初始化一下时间
//*********************error*******************/  
//                    ERROR2
// RTC.set(RTC_YEAR, 17);  //设置成17年
// RTC.set(RTC_MONTH, 4);  //设置成4月
// RTC.set(RTC_DAY, 18);  //设置成18日
// RTC.set(RTC_HOUR, 9);  //设置成9时
// RTC.set(RTC_MINUTE, 39);  //设置成39
// RTC.set(RTC_SECOND, 01);  //设置成01秒
//********************error********************/**
}

void loop() {
  DateTime now = RTC.now();
  // 获取现在的时间
  printDateTime(now);
  //通过串口发送出去
  delay(100);
}

void printDateTime(DateTime dateTime){
  //传送年份
     Serial.println(dateTime.year(), DEC);
     //传送月份
     Serial.println(dateTime.month(), DEC);
     //传送月份中的第几天
     Serial.print(dateTime.day(), DEC);
     Serial.print(' ');
     //传送小时
     Serial.print(dateTime.hour(), DEC);
     Serial.print(':');
     //传送分钟
     Serial.print(dateTime.minute(), DEC);
     Serial.print(':');
     //传送秒
     Serial.print(dateTime.second(), DEC);
     Serial.println(); 
  }

其中,有一些小的点需要注意,就是我自己刚刚踩过的坑,希望大家在使用的时候能够避免。

  • ERROR1:
    如在上面的代码中标注的那样,这里有两个错误。我是在网上找的一个代码,然后编译发现有上述两个主要的错误。报错是RTC_DS1307’ does not name a type,显然是库文件不对,或者是代码中引用的函数在库文件中并没有定义。经过在网上的一番搜索,终于在github上发现了一丝踪迹。
    解决方案很简单,就是把RTC_DS1307 RTC–> DS1307 RTC即可。

  • ERROR2:
    这个错误解决之后发现了第二个错误,报错是RTC.set()这个函数不存在。再一次在网上查找发现另一个函数可以搞定这个问题。就是 RTC.adjust(DateTime(2015, 5, 21, 18, 0, 0));,又简单又没错。

硬件部分等到完成实验了再写,希望能帮到大家!!!

你可能感兴趣的:(记录)