极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18842|回复: 9

求助,DS1302模块使用时遇到了问题

[复制链接]
发表于 2016-7-11 13:12:22 | 显示全部楼层 |阅读模式
现在Arduino IDE已经1.6.9了,但是论坛里的帖子和库全是1.0左右甚至更低时代的产品现在没法用,就像这样:
现在该怎么办?求救

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-7-12 18:56:48 | 显示全部楼层
试试这个,,我的都是可以用的~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-12 21:14:38 | 显示全部楼层
莲子 发表于 2016-7-12 18:56
试试这个,,我的都是可以用的~~

读取可以,但是时间没法改啊...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2016-7-12 23:06:50 | 显示全部楼层
CSJ2003 发表于 2016-7-12 21:14
读取可以,但是时间没法改啊...
  1. /*
  2. Arduino 连接 DS1302
  3. 代码来源:[url]http://quadpoint.org/projects/arduino-ds1302[/url]
  4. 增加了串口调整时间代码
  5. */
  6. #include <stdio.h>
  7. #include <string.h>
  8. #include <DS1302.h>

  9. /* 接口定义
  10. CE(RST)(DS1302 pin5) -> Arduino D5
  11. IO(DAT)(DS1302 pin6) -> Arduino D6
  12. SCLK(CLK)(DS1302 pin7) -> Arduino D7
  13. */
  14. uint8_t CE_PIN   = 5;
  15. uint8_t IO_PIN   = 6;
  16. uint8_t SCLK_PIN = 7;

  17. /* 日期变量缓存 */
  18. char buf[50];
  19. char day[10];
  20. /* 串口数据缓存 */
  21. String comdata = "";
  22. int numdata[7] ={0}, j = 0, mark = 0;
  23. /* 创建 DS1302 对象 */
  24. DS1302 rtc(CE_PIN, IO_PIN, SCLK_PIN);


  25. void print_time()
  26. {
  27.     /* 从 DS1302 获取当前时间 */
  28.     Time t = rtc.time();
  29.     /* 将星期从数字转换为名称 */
  30.     memset(day, 0, sizeof(day));
  31.     switch (t.day)
  32.     {
  33.     case 1: strcpy(day, "Sunday"); break;
  34.     case 2: strcpy(day, "Monday"); break;
  35.     case 3: strcpy(day, "Tuesday"); break;
  36.     case 4: strcpy(day, "Wednesday"); break;
  37.     case 5: strcpy(day, "Thursday"); break;
  38.     case 6: strcpy(day, "Friday"); break;
  39.     case 7: strcpy(day, "Saturday"); break;
  40.     }
  41.     /* 将日期代码格式化凑成buf等待输出 */
  42.     snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d", day, t.yr, t.mon, t.date, t.hr, t.min, t.sec);
  43.     /* 输出日期到串口 */
  44.     Serial.println(buf);
  45. }


  46. void setup()
  47. {
  48.     Serial.begin(9600);
  49.     rtc.write_protect(false);
  50.     rtc.halt(false);
  51. }

  52. void loop()
  53. {

  54.     /* 当串口有数据的时候,将数据拼接到变量comdata */
  55.     while (Serial.available() > 0)
  56.     {
  57.         comdata += char(Serial.read());
  58.         delay(2);
  59.         mark = 1;
  60.     }
  61.     /* 以逗号分隔分解comdata的字符串,分解结果变成转换成数字到numdata[]数组 */
  62.     if(mark == 1)
  63.     {
  64.         Serial.print("You inputed : ");
  65.         Serial.println(comdata);
  66.         for(int i = 0; i < comdata.length() ; i++)
  67.         {
  68.             if(comdata[i] == ',' || comdata[i] == 0x10 || comdata[i] == 0x13)
  69.             {
  70.                 j++;
  71.             }
  72.             else
  73.             {
  74.                 numdata[j] = numdata[j] * 10 + (comdata[i] - '0');
  75.             }
  76.         }
  77.         /* 将转换好的numdata凑成时间格式,写入DS1302 */
  78.         Time t(numdata[0], numdata[1], numdata[2], numdata[3], numdata[4], numdata[5], numdata[6]);
  79.         rtc.time(t);
  80.         mark = 0;j=0;
  81.         /* 清空 comdata 变量,以便等待下一次输入 */
  82.         comdata = String("");
  83.         /* 清空 numdata */
  84.         for(int i = 0; i < 7 ; i++) numdata[i]=0;
  85.     }
  86.    
  87.     /* 打印当前时间 */
  88.     print_time();
  89.     delay(1000);
  90. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-13 13:37:02 | 显示全部楼层
莲子 发表于 2016-7-12 23:06
/*
Arduino 连接 DS1302
代码来源:http://quadpoint.org/projects/arduino-ds1302

vcc接3.3v?难道是我模块挂了吗..
回复 支持 反对

使用道具 举报

发表于 2016-7-13 18:29:09 | 显示全部楼层
CSJ2003 发表于 2016-7-13 13:37
vcc接3.3v?难道是我模块挂了吗..

接+5V也是可以的,,你看看你修改时间输入的格式,,输入格式错误,,是不能修改的~~
回复 支持 反对

使用道具 举报

发表于 2016-7-15 15:24:10 | 显示全部楼层
用DS1307
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-24 13:13:02 | 显示全部楼层
爱上即可 发表于 2016-7-15 15:24
用DS1307

已经换上3231了,相当好用
回复 支持 反对

使用道具 举报

发表于 2016-8-8 09:44:49 | 显示全部楼层
莲子 发表于 2016-7-12 18:56
试试这个,,我的都是可以用的~~

你好,我放到目录下之后,编译显示没有stdio.h这个头文件是怎么回事呀?
回复 支持 反对

使用道具 举报

发表于 2016-8-8 22:23:39 | 显示全部楼层
wyl_stloy 发表于 2016-8-8 09:44
你好,我放到目录下之后,编译显示没有stdio.h这个头文件是怎么回事呀?

pls try...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 00:44 , Processed in 0.039437 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表