37种传感器(三十二)DS1302模块+Stduino Nano&UNO
关键词: 51;stm32;arduino;stduino单片机;stduino UNO&Nano;DS1302时钟模块
说明:
DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路, 它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能。且能自动对少于31天的月份日期进行调整,支持12小时制和24小时制。
工作电压为 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库,编写一个互动式的环境,从而帮助我们读取时间、修改时间、更改12/24小时制等等。
器材: Stduino UNO/Nano;杜邦线;DS1302模块
电路连接: VCC -> 5V GND -> GND CLK -> D4 DAT -> D3 RST -> D2
代码展示: - <font face="Arial" size="3">#include <DS1302.h>
- void setup()
- {
- DS1302_Init();
- Serial.begin(9600);
- Serial.println("欢迎使用!");
- DS1302_GetTime(&DS1302Data);
- Show_RTCC();
- Serial.println("输入 "help" 获得帮助");
- }
- // 获取串口输入
- void Scan_Input()
- {
- String comdata="";
- while (Serial.available() > 0)
- {
- comdata += char(Serial.read());
- delay(2);
- }
-
- if(comdata.length()==20 && comdata.startsWith("set"))
- {
- Set_Time(comdata);
- }
- else if(comdata=="show")
- {
- Serial.println("The Time Now Is:");
- Show_RTCC();
- }
- else if(comdata=="help")
- {
- help();
- }
- else if(comdata.length()==11 && comdata.endsWith("hours"))
- {
- Set_HourSystem(comdata);
- }
- }
-
- //帮助内容
- void help()
- {
- Serial.println("************************************* HELP *****************************************");
- Serial.println("Type "set YY MM DD WEEK HH MM" To Set The Time!");
- Serial.println("Such As Type "set 08 08 08 1 12 00" To Set The Time As 2008-8-8 Monday 12:00");
- Serial.println("Type "show" To Display The Time Now!");
- Serial.println("Type "set 24hours" or "set 12hours" To Change The Hour System");
- Serial.println("************************************* HELP *****************************************");
- }
-
- void loop()
- {
- Scan_Input();
- DS1302_GetTime(&DS1302Data); //获取当前RTCC值
-
- }</font>
复制代码
实验效果: 打开串口显示器,显示了友好的交互界面:
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
更多功能集成正在进行中~
|