本帖最后由 Stduino 于 2020-8-20 19:42 编辑
说明: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
代码展示: #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值
}
实验效果:打开串口显示器,显示了友好的交互界面:
Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。IDE当前支持的功能有:
GDB调试
封装库下载安装
代码自动补全提示
中英文模式
UTF-8\GBK编码格式
代码快速格式化
SWD\串口程序下载&调试(已验证)
DFU程序下载方式(待验证)
USB HID程序下载方式(待验证)
maple DFU程序下载方式(待验证)
maple DFU2程序下载方式(待验证)
MassStorage程序下载方式(待验证)
更多功能细节请点击图片上水印显示的网址进行了解
已经支持的芯片&板型列表:
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
更多功能集成正在进行中~
|