搜索
查看: 994|回复: 0

[原创] 【更好用的单片机】【Stduino】Stduino学习(三十二)DS1302模块

[复制链接]

该用户从未签到

24

主题

26

帖子

0

蝴蝶豆

中级会员

最后登录
2020-9-29
发表于 2020-8-22 17:52:06 | 显示全部楼层 |阅读模式
37种传感器(三十二)DS1302模块+Stduino Nano&UNO
关键词:
51stm32arduinostduino单片机stduino UNO&Nano;DS1302时钟模块

说明:
DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路, 它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能。且能自动对少于31天的月份日期进行调整,支持12小时制和24小时制。
32-DS1302展示图.png

工作电压为 2.5V 5.5V。其内部包含一个实时时钟/日历以及一个31字节的RAM,同时采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。
通过使用串行通信,可以简化DS1302与单片机的连接。与DS1302连接只需要三条线:
RST(复位)
I/O(数据线)
SCLK(串行时钟信号)
可以一次1字节或最多31个字节的在RAM之间传输数据。
其他引脚的说明:
VCC2:工作电源。
GND:电源接地。
VCC1:后背电源,需要3V的纽扣电池,能够在VCC2断开的时候继续供电,从而保持时钟数据。
DS1302的运行只需要非常低的能耗,维持数据与时钟信息只需要不到1微瓦的功率。其内部有多个寄存器,通过访问特定地址,我们就能对这些寄存器进行读写操作。例如访问秒寄存器,我们通过下图左一,就可以知道在这里可以引用DS1302.h,读写操作等繁琐步骤已经被封装好了。
ds1302时钟寄存器.png
实验目的:
在本例中,我们将利用DS1302库,编写一个互动式的环境,从而帮助我们读取时间、修改时间、更改12/24小时制等等。

器材:
Stduino UNO/Nano;杜邦线;DS1302模块

电路连接:
VCC -> 5V
GND -> GND
CLK -> D4
DAT -> D3
RST -> D2

代码展示:
  1. <font face="Arial" size="3">#include <DS1302.h>
  2. void setup()
  3. {
  4.   DS1302_Init();
  5.   Serial.begin(9600);
  6.   Serial.println("欢迎使用!");  
  7.   DS1302_GetTime(&DS1302Data);
  8.   Show_RTCC();
  9.   Serial.println("输入 "help" 获得帮助");
  10. }
  11. // 获取串口输入
  12. void Scan_Input()
  13. {
  14.   String comdata="";
  15.   while (Serial.available() > 0)  
  16.     {
  17.      comdata += char(Serial.read());
  18.      delay(2);
  19.     }
  20.    
  21.     if(comdata.length()==20 && comdata.startsWith("set"))
  22.     {
  23.       Set_Time(comdata);
  24.     }
  25.     else if(comdata=="show")
  26.     {
  27.       Serial.println("The Time Now Is:");
  28.       Show_RTCC();
  29.     }
  30.     else if(comdata=="help")
  31.     {
  32.       help();
  33.     }
  34.     else if(comdata.length()==11 && comdata.endsWith("hours"))
  35.     {
  36.       Set_HourSystem(comdata);
  37.     }
  38. }

  39. //帮助内容
  40. void help()
  41. {
  42.   Serial.println("************************************* HELP *****************************************");
  43.   Serial.println("Type "set YY MM DD WEEK HH MM" To Set The Time!");
  44.   Serial.println("Such As Type "set 08 08 08 1 12 00" To Set The Time As 2008-8-8 Monday 12:00");
  45.   Serial.println("Type "show" To Display The Time Now!");
  46.   Serial.println("Type "set 24hours" or "set 12hours" To Change The Hour System");
  47.   Serial.println("************************************* HELP *****************************************");
  48. }

  49. void loop()
  50. {
  51.   Scan_Input();
  52.   DS1302_GetTime(&DS1302Data);        //获取当前RTCC值
  53.   
  54. }</font>
复制代码



实验效果:
打开串口显示器,显示了友好的交互界面:
32-ds1302效果图01.png

Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
IDE当前支持的功能有:



  • GDB调试
  • 封装库下载安装
  • 代码自动补全提示
  • 中英文模式
  • UTF-8\GBK编码格式
  • 代码快速格式化
  • SWD\串口程序下载&调试(已验证)
  • DFU程序下载方式(待验证)
  • USB HID程序下载方式(待验证)
  • maple DFU程序下载方式(待验证)
  • maple DFU2程序下载方式(待验证)
  • MassStorage程序下载方式(待验证)

    更多功能细节请前往www.stduino.com
    进行了解

    已经支持的芯片&板型列表:


    • Stduino UNO&Nano
    • Nucleo 144 boards
    • Nucleo 64 boards
    • Nucleo 32 boards
    • Discovery boards
    • Eval boards
    • STM32MP1 series coprocessor boards
    • Generic STM32F0 boards
    • Generic STM32F1 boards
    • Generic STM32F3 boards
    • Generic STM32F4 boards
    • Generic STM32H7 boards
    • Generic STM32L0 boards
    • 3D printer boards
    • LoRa boards
    • Electronic Speed Controller boards
    • Generic flight controllers
    • Garatronics boards
    • Midatronics boards

      更多功能集成正在进行中~




回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 08:37 , Processed in 1.175558 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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