查看: 2024|回复: 3

[未解决] 【求助】DS3231时间模块如何对部分时间信息重新设置?

[复制链接]
  • TA的每日心情
    开心
    2019-2-2 00:50
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2019-1-14 22:51 | 显示全部楼层 |阅读模式
    萌新求教
    最近在自学arduino,基础很差,我在网上找到一个DS3231时间模块的库文件,依照教程成功驱动,但是我发现我只能用固定的格式DateTime(2019,01,14,21,14,11,1);来设置时间
    如果我要临时更改这一长串设置里的某一项,比如校时我只更改时间为21点20分,其他不变,不知道怎么下手了
    比如从串口读取一个数字20,我想指定替换DateTime(2019,01,14,21,14,11,1)里的分钟位,程序怎么写,怎么操作完全不懂啊,求大神帮帮忙?

    // Date and time functions using a RX8025 RTC connected via I2C and Wire lib
    #include <Wire.h>   
    #include "DS3231.h"  
    DS3231 RTC;         

    char weekDay[][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };   
    //year, month, date, hour, min, sec and week-day(starts from 0 and goes to 6)
    //writing any non-existent time-data may interfere with normal operation of the RTC.
    //Take care of week-day also.

    DateTime dt(2019,01,14,21,14,11,1);  //用来设置时间,年、月、日、时、分、秒、星期;从0到6对应从星期天到星期六


    void setup ()
    {
        Serial.begin(9600);
        Wire.begin();                     //初始化IIC总线
        RTC.begin();                      //初始化时钟模块
        RTC.adjust(dt);                   //把上面设置的时间写入模块,设置时间
        //Adjust date-time as defined 'dt' above
    }

    void loop ()
    {
        DateTime now = RTC.now();         
        Serial.print(now.year(), DEC);      //串口输出年份
        Serial.print('/');
        Serial.print(now.month(), DEC);     //月
        Serial.print('/');
        Serial.print(now.date(), DEC);      //日
        Serial.print(' ');
        Serial.print(now.hour(), DEC);      //小时
        Serial.print(':');
        Serial.print(now.minute(), DEC);    //分钟
        Serial.print(':');
        Serial.print(now.second(), DEC);    //秒
        Serial.print(' ');
        Serial.print(weekDay[now.dayOfWeek()]);    //输出星期几
        Serial.println();
        delay(1000);
    }

    萌新求大神们帮帮忙,感激不尽~~

  • TA的每日心情
    开心
    2019-2-2 00:50
  • 签到天数: 6 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-1-14 23:47 | 显示全部楼层
    int Nian = 2019;         
    int Yue = 1;              
    int Ri = 14;
    int Shi = 23;
    int Fen = 40;
    int Miao = 11;
    int Zhou = 1;

    RTC.adjust(DateTime(Nian,Yue,Ri,Shi,Fen,Miao,Zhou));     

    自己解决了……
  • TA的每日心情
    无聊
    2018-9-9 17:34
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2019-4-8 22:12 | 显示全部楼层
    我也有这个疑问  我的是 想用按键 改时间 日期 在液晶屏上   不会啊

    该用户从未签到

    发表于 2019-12-13 09:53 | 显示全部楼层
    很简单啊,先取出所有的时间值,放到变量里,把要修改的内容,给相应的变量重新赋值就可以了。最好用个整形数组。很方便。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    天猫精灵接入语音提示找不到该设备?
    天猫精灵接入语音提示找不
    今天又刷了一遍代码,天猫精灵提示 没有找到你要操作的设备! 怎么回事啊??? 折腾
    引入库的问题,不知道怎么叙述 看图吧
    引入库的问题,不知道怎么
    最左边的是主文件 也就是启动的文件 后边三个是引入的 在后边这个文件再引入库就报错
    blinker电源插座
    blinker电源插座
    这台blinker电源插座有blinker控制和手动控制两种工作方式. 1.blinker控制:滑条用于设
    blinker灯、环境传感器套件意见收集
    blinker灯、环境传感器套
    计划春节后推出blinker氛围灯和环境检测套件。 本帖收集相关建议,如若采纳,发红包(
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表