今天参考如下帖子完成了DS1302测试,没有问题
http://www.geek-workshop.com/thread-205-1-1.html
但是我再接上SD卡,想把时间同时保存在SD卡中,通过串口设置时间后,输出如下,感觉像是把设置的时间如2016,12,09,09,36,40,5,每个字符换行输出了,程序参考链接,加上了SD卡写入程序
,初始化部分同链接程序,程序如下 - void loop()
- {
- if (Serial.available() > 0) {
- comdata += char(Serial.read());
- delay(2);
- mark = 1;
- }
- /* 以逗号分隔分解comdata的字符串,分解结果变成转换成数字到numdata[]数组 */
- if(mark == 1)
- {
- Serial.print("You inputed : ");
- Serial.println(comdata);
-
- delay(200);
-
- for(int i = 0; i < comdata.length() ; i++)
- {
- if(comdata[i] == ',' || comdata[i] == 0x10 || comdata[i] == 0x13)
- {
- j++;
- }
- else
- {
- numdata[j] = numdata[j] * 10 + (comdata[i] - '0');
- }
- }
- /* 将转换好的numdata凑成时间格式,写入DS1302 */
- Time t(numdata[0], numdata[1], numdata[2], numdata[3], numdata[4], numdata[5], numdata[6]);
- rtc.time(t);
- mark = 0;j=0;
- /* 清空 comdata 变量,以便等待下一次输入 */
- comdata = String("");
- /* 清空 numdata */
- for(int i = 0; i < 7 ; i++) numdata[i]=0;
- }
-
- myFile = SD.open("DS1302.txt", FILE_WRITE);
- if (myFile)
- {
- myFile.println(buf);
- myFile.close();
- }
-
- print_time();
- delay(1000);
- }
复制代码
估计这里有问题
myFile.println(buf);
还请帮忙看一下, |