PlatformIO+ESP32S3学习:驱动DS1302实现时间设置和读取

1. 工程创建


在VSCode中打开PlatformIO扩展创建工程。
在这里插入图片描述

设置工程向导
在这里插入图片描述
在这里插入图片描述

等待创建完成。
在这里插入图片描述

2. 安装驱动库


创建完成之后,我们在VSCode中打开我们刚才创建的工程文件夹。
在这里插入图片描述

在VSCode中回到PlatformIO的主页,给工程安装DS1302的驱动库。

在这里插入图片描述

在这里插入图片描述

搜索DS1302,安装l来自Rafa CoutoDs1302库。

在这里插入图片描述
将库安装到我们的工程中。
在这里插入图片描述

在这里插入图片描述
打开platformio.ini文件,可以看到已经安装上了DS1302的驱动库。
在这里插入图片描述

3. 编辑代码


打开工程下的src文件夹下的main.cpp
在这里插入图片描述
输入以下代码:

#include <Arduino.h>
#include <Ds1302.h>

//计时模块DS1302相关定义
#define RST 10    //ds1302的RST引脚定义
#define DATA 3    //ds1302的DATA引脚定义
#define CLK 2     //ds1302的CLK引脚定义

Ds1302 rtc(RST, CLK, DATA); //创建DS1302这个对象

void setup()
{
  //初始化串口
  Serial.begin(9600);

  //初始化DS1302
  rtc.init();

  //测试时钟是否停止并设置一个日期时间来启动它
  if (rtc.isHalted())
  {
      Serial.println("RTC is halted. Setting time...");

      //创建基于DS1302库下的时间参数
      Ds1302::DateTime dt = {
          .year = 24,
          .month = Ds1302::MONTH_JUL,
          .day = 27,
          .hour = 14,
          .minute = 13,
          .second = 0,
          .dow = Ds1302::DOW_SAT
      };

      //将设置的时间写入DS1302模块
      rtc.setDateTime(&dt);
  }
  else
  {
    Serial.println("RTC is busy.\r\n");
  }
    

  Serial.println("Time start.\r\n");
}


void loop()
{
    char outputString[100]={0};
    Ds1302::DateTime now;
    //获取当前时间并且存储在now中
    rtc.getDateTime(&now);

    static uint8_t last_second = 0;
    //如果秒数发生更新
    if (last_second != now.second)
    {
        //手动更新秒数,方便下次判断
        last_second = now.second;
        //格式化字符串
        sprintf(outputString, 
        "%d-%d-%d %d  %d:%d:%d\r\n",
        now.year+2000,
        now.month,
        now.day,
        now.dow,
        now.hour,
        now.minute,
        now.second );
        //输出字符串
        Serial.println(outputString);
    }
    delay(1000);
}

4. 硬件连接


在这里插入图片描述

这里其实我是做了电路设计的,如果你的模块上没有RST的话应该是不用连接RST引脚的。在这里插入图片描述

5. 代码验证


代码编写完成之后,将ESP32S3开发板接入电脑。我当前的开发板上是CH340K的驱动,故我这里选择COM3端口
在这里插入图片描述
编译并下载到开发板中。
在这里插入图片描述
点击打开串口监视器。
在这里插入图片描述
可以看到开发板可以正常的读取和设置DS1302的时间。输出正常。
在这里插入图片描述

6. 代码工程下载


下载地址:https://gitee.com/laoguaige/esp32-s3-r8-n8-pixel-clock/tree/master/example/ds1302

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老怪.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值