suoma 发表于 2016-12-9 14:14:00

将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);
还请帮忙看一下,

maxims 发表于 2016-12-12 23:21:11

考虑一下写sd和serial需要时间

suoma 发表于 2016-12-13 19:49:42

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]
查看完整版本: 将DS1302时间写入SD卡可以,串口设置时间会出问题