查看: 212|回复: 4

[未解决] DS1302读不出来时间

[复制链接]
  • TA的每日心情
    郁闷
    2019-9-12 08:08
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2019-9-11 22:05 | 显示全部楼层 |阅读模式
    用的是unoR3板,代码用的是网上的ds1302库的示例,代码如下
    #include <stdio.h>
    #include <DS1302.h>

    namespace {

    // Set the appropriate digital I/O pin connections. These are the pin
    // assignments for the Arduino as well for as the DS1302 chip. See the DS1302
    // datasheet:
    //
    //   http://datasheets.maximintegrated.com/en/ds/DS1302.pdf
    const int kCePin   = 5;  // Chip Enable
    const int kIoPin   = 6;  // Input/Output
    const int kSclkPin = 7;  // Serial Clock

    // Create a DS1302 object.
    DS1302 rtc(kCePin, kIoPin, kSclkPin);

    String dayAsString(const Time:ay day) {
      switch (day) {
        case Time::kSunday: return "Sunday";
        case Time::kMonday: return "Monday";
        case Time::kTuesday: return "Tuesday";
        case Time::kWednesday: return "Wednesday";
        case Time::kThursday: return "Thursday";
        case Time::kFriday: return "Friday";
        case Time::kSaturday: return "Saturday";
      }
      return "(unknown day)";
    }

    void printTime() {
      // Get the current time and date from the chip.
      Time t = rtc.time();

      // Name the day of the week.
      const String day = dayAsString(t.day);

      // Format the time and date and insert into the temporary buffer.
      char buf[50];
      snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d",
               day.c_str(),
               t.yr, t.mon, t.date,
               t.hr, t.min, t.sec);

      // Print the formatted string to serial so we can see the time.
      Serial.println(buf);
    }

    }  // namespace

    void setup() {
      Serial.begin(9600);

      // Initialize a new chip by turning off write protection and clearing the
      // clock halt flag. These methods needn't always be called. See the DS1302
      // datasheet for details.
      rtc.writeProtect(false);
      rtc.halt(false);

      // Make a new time object to set the date and time.
      // Sunday, September 22, 2013 at 01:38:50.
      Time t(2013, 9, 22, 1, 38, 50, Time::kSunday);

      // Set the time and date on the chip.
      rtc.time(t);
    }

    // Loop and print the time every second.
    void loop() {
      printTime();
      delay(1000);
    }

    换了几个ds1302了,程序上传没有问题,但是用串口监视器看输出的都是(unknown day) 2000-00-00 00:00:00
    求解这个是怎么一个情况?
    4.png

    ds1302库.zip

    155.4 KB, 下载次数: 0

  • TA的每日心情
    郁闷
    2019-9-12 08:08
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2019-9-11 22:08 | 显示全部楼层
    接线也没有错,有个情况不知道是正确的还是错误的,程序上传以后,R3板的TX灯会一直亮,然后打开串口监视器TX灯就会随着时间跳动的节奏闪烁

    该用户从未签到

    发表于 2019-9-12 07:20 | 显示全部楼层
    我前两天调试时钟程序时,也遇到这个问题,我手中有三个不同类型的DSc302模块,一开始也是读不出数,我以为我换了两块,总是不起振,后来把一个正在用的拿过来,直接就读出来数了,我的建议是,一定要保证你试用的模块是好用的,然后你再测试程序。
  • TA的每日心情
    无聊
    2019-9-21 15:13
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2019-9-12 09:23 | 显示全部楼层
    const int kCePin   = 5;  // Chip Enable
    const int kIoPin   = 6;  // Input/Output
    const int kSclkPin = 7;  // Serial Clock
    根据以上检查接线
  • TA的每日心情
    开心
    2019-9-14 07:38
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2019-9-12 23:59 来自手机 | 显示全部楼层
    注意供电问题,查一下晶振有没有正常起振~希望对你有用,之前有用过,因为供电问题导致非常不稳定,查了晶振不起振,才发现电源错了
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    全国机器人等级考试配件购买
    全国机器人等级考试配件购
    本人想自己教小孩机器人等级考试,需要购买机器人等级考试的配件,可是淘宝上的太
    【Arduino】108种传感器系列实验(24)---水位传感器模块
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】108种传感器系列实验(96)---433M无线发射接收模块
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】108种传感器系列实验(93)---CSR8350蓝牙音乐模块
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】108种传感器系列实验(89)--- 4*4位 RGB LED 全彩模块
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表