将DS1302时间写入SD卡可以,串口设置时间会出问题
今天参考如下帖子完成了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 == ',' || comdata == 0x10 || comdata == 0x13)
{
j++;
}
else
{
numdata = numdata * 10 + (comdata - '0');
}
}
/* 将转换好的numdata凑成时间格式,写入DS1302 */
Time t(numdata, numdata, numdata, numdata, numdata, numdata, numdata);
rtc.time(t);
mark = 0;j=0;
/* 清空 comdata 变量,以便等待下一次输入 */
comdata = String("");
/* 清空 numdata */
for(int i = 0; i < 7 ; i++) numdata=0;
}
myFile = SD.open("DS1302.txt", FILE_WRITE);
if (myFile)
{
myFile.println(buf);
myFile.close();
}
print_time();
delay(1000);
}
估计这里有问题
myFile.println(buf);
还请帮忙看一下, 考虑一下写sd和serial需要时间 maxims 发表于 2016-12-12 23:21
考虑一下写sd和serial需要时间
换成这样也不行
myFile = SD.open("DS1302.txt", FILE_WRITE);
if (myFile)
{
print_time();
delay(1000);
myFile.println(buf);
myFile.close();
}
页:
[1]