极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12015|回复: 4

入门新人DS3231 程序求助

[复制链接]
发表于 2015-9-22 17:43:19 | 显示全部楼层 |阅读模式
我自己想做一个串口时钟,用串口发送指令返回时间信息。自己就利用其他高手的帖子自己写了一个程序。但是有一个问题自己解决不了。怎么显示24小时制的时间?
如图所示,我下午15点设置的时间,显示的是3


下面是我在DS3231中写的时间
  1. //调用DS3231库与i2c驱动库
  2. #include <DS3231.h>
  3. #include <Wire.h>
  4. //初始化ds3231以及所需要的变量
  5. DS3231 Clock;
  6. bool Century=false;
  7. bool h12;
  8. bool PM;
  9. byte ADay, AHour, AMinute, ASecond, ABits;
  10. bool ADy, A12h, Apm;

  11. byte year, month, date, DoW, hour, minute, second;

  12. void setup() {
  13.       
  14.         Wire.begin();
  15.         Clock.setSecond(50);//配置秒
  16.         Clock.setMinute(32);//配置分钟
  17.         Clock.setHour(17);  //配置小时(24小时制)
  18.         Clock.setDate(22);  //配置日
  19.         Clock.setMonth(9);  //配置月
  20.         Clock.setYear(15);  //配置年 (仅最后两位)
  21.         
  22. }
  23. void loop() {
  24. }
复制代码



下面是我在ARDUINO中写的读取指令

  1. #include <DS3231.h>
  2. #include <Wire.h>


  3. //========定义时钟需要的各种变量========
  4. DS3231 Clock;
  5. bool Century=false;
  6. bool h12;
  7. bool PM;
  8. byte ADay, AHour, AMinute, ASecond, ABits;
  9. bool ADy, A12h, Apm;
  10. int second,minute,hour,date,month,year,val;


  11. void setup(void) {

  12. Serial.begin(115200);

  13. }

  14. void ReadDS3231()
  15. {
  16.   int second,minute,hour,date,month,year,pm;
  17.   second=Clock.getSecond();
  18.   minute=Clock.getMinute();
  19.   hour=Clock.getHour(h12,PM);
  20.   date=Clock.getDate();
  21.   month=Clock.getMonth(Century);
  22.   year=Clock.getYear();


  23.   Serial.print("20");
  24.   Serial.print(year,DEC);
  25.   Serial.print('-');
  26.   Serial.print(month,DEC);
  27.   Serial.print('-');
  28.   Serial.print(date,DEC);
  29.   Serial.print(' ');
  30.   Serial.print(hour,DEC);
  31.   Serial.print(':');
  32.   Serial.print(minute,DEC);
  33.   Serial.print(':');
  34.   Serial.print(second,DEC);
  35.   Serial.print('\n');
  36. }
  37. void loop()
  38. {
  39.   val=Serial.read();
  40.   if(val=='a')  
  41.   ReadDS3231();
  42. }
复制代码


求各路高手指点迷津

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-9-24 23:13:04 来自手机 | 显示全部楼层
Clock.getHour是获取小时的。可以传递的函数应该就是决定返回小时制式。楼主应该研究一下库文件。这个坎是绕不不开的。
回复 支持 反对

使用道具 举报

发表于 2015-9-24 23:25:35 | 显示全部楼层
hour=Clock.getHour(h12,PM);
这句是不是有问题。。。。
回复 支持 反对

使用道具 举报

发表于 2015-9-25 12:57:01 | 显示全部楼层
setClockMode(bool h12)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-13 17:39:35 | 显示全部楼层
我参考了下面这个帖子算是顺利的解决了这个问题。谢谢大家
http://www.geek-workshop.com/thread-5929-1-1.html
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 03:49 , Processed in 0.066426 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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