|
本帖最后由 w466909383 于 2019-6-1 22:07 编辑
嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以 大家的回复将是我最大的动力!!!!!!!!!!!!!!!!!
未经作者同意,禁止转载
DS1302
就是这个鬼东西了
/* DS1302与Arduino连接方式
CE(DS1302 pin5) --> Arduino D5
IO(DS1302 pin6) --> Arduino D6
SCLK(DS1302 pin7) --> Arduino D7
*/
上代码
[mw_shl_code=arduino,true]#include <stdio.h>
#include <string.h>
#include "DS1302.h"
/* DS1302与Arduino连接方式
CE(DS1302 pin5) --> Arduino D5
IO(DS1302 pin6) --> Arduino D6
SCLK(DS1302 pin7) --> Arduino D7
*/
uint8_t CEPIN = 9;
uint8_t IOPIN = 8;
uint8_t SCLKPIN = 7;
/* 日期变量缓存 */
char buf[50];
char day[10];
/* 定义DS1302对象 */
DS1302 rtc(CEPIN, IOPIN, SCLKPIN);
void print_time()
{
Time t = rtc.time();
/* 星期转换成字符串 */
memset(day, 0, sizeof(day));
switch (t.day)
{
case 1: strcpy(day, "Sunday"); break;
case 2: strcpy(day, "Monday"); break;
case 3: strcpy(day, "Tuesday"); break;
case 4: strcpy(day, "Wednesday"); break;
case 5: strcpy(day, "Thursday"); break;
case 6: strcpy(day, "Friday"); break;
case 7: strcpy(day, "Saturday"); break;
}
/* 日期格式化 */
snprintf(buf, sizeof(buf), "%04d-%02d-%02d %02d:%02d:%02d %s", t.yr, t.mon, t.date, t.hr, t.min, t.sec, day);
/* 打印输出 */
Serial.println(buf);
}
void setup()
{
Serial.begin(9600);
rtc.write_protect(false);
rtc.halt(false);
/* 初始化时间 */
//Time t(2019, 5, 10, 17, 06, 0, 2);
Time t = rtc.time();
rtc.time(t);
rtc.write_protect(true);
}
void loop()
{
/* 串口显示时间 */
print_time();
delay(1000);
}
[/mw_shl_code]
[mw_shl_code=arduino,true]/* 初始化时间 */
//Time t(2019, 5, 10, 17, 06, 0, 2);
//Time t = rtc.time();
/*
这两句就是初始化时间的
首次运行 放开Time t(2019, 5, 10, 17, 06, 0, 2);这一句
然后注释掉
Time t = rtc.time();放开这一句
就可以了
*/[/mw_shl_code]
想要学习更多内容加QQ群吧
乌鸦的Arduino交流群:46127581
|
|