黑乌鸦的Arduino兵器库-----DS1302时钟模块
本帖最后由 w466909383 于 2019-6-1 22:07 编辑嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以大家的回复将是我最大的动力!!!!!!!!!!!!!!!!!
未经作者同意,禁止转载
就是这个鬼东西了
/* DS1302与Arduino连接方式
CE(DS1302 pin5) --> Arduino D5
IO(DS1302 pin6) --> Arduino D6
SCLK(DS1302 pin7) --> Arduino D7
*/
上代码
#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;
char day;
/* 定义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);
}
static/image/hrline/5.gif
/* 初始化时间 */
//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();放开这一句
就可以了
*/
想要学习更多内容加QQ群吧
乌鸦的Arduino交流群:46127581
期待后续,向你学习。 感谢楼上的回复你们的回复是我最大的动力 加油^0^~ 不错,加油:lol 膜拜老大!继续努力学习 实测可用,感谢分享。 板子原理图能给发一份嘛?
弱弱问一句,这模块如果时间不准应该怎么设置?初始化时间应该是编译时间,但是编译到最终运行差了好几秒 有没有库的说明文件啊:o
页:
[1]
2