本帖最后由 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
更多功能集成正在進行中~
|