问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

PlatformIO+ESP32S3开发DS1302实时时钟模块

创作时间:
作者:
@小白创作中心

PlatformIO+ESP32S3开发DS1302实时时钟模块

引用
CSDN
1.
https://m.blog.csdn.net/qq_51930953/article/details/140734318

本文将详细介绍如何使用PlatformIO开发环境在ESP32S3开发板上驱动DS1302实时时钟模块。内容涵盖工程创建、驱动库安装、代码编写、硬件连接和代码验证等步骤,适合有一定基础的嵌入式开发爱好者学习参考。

1. 工程创建

在VSCode中打开PlatformIO扩展创建工程。
设置工程向导
等待创建完成。

2. 安装驱动库

创建完成之后,我们在VSCode中打开我们刚才创建的工程文件夹。
在VSCode中回到PlatformIO的主页,给工程安装DS1302的驱动库。
搜索DS1302,安装来自
Rafa Couto

Ds1302
库。
将库安装到我们的工程中。
打开
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

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号