Writing to SD card arduino

Writing to SD card arduino

本文关键字:arduino card SD to Writing      更新时间:2023-10-16

我的Arduino遇到了一些麻烦。我正试图为我的文件创建一个动态名称,并将其转换为char数组,就像我在这个网站的一些帖子上看到的那样。

我是这样写函数的:

void writeSD()
{ 
  DateTime dt = RTC.now();
  String temp = "DIVE";
  temp += dt.day();
  temp += dt.month();
  temp += dt.year();
  temp += ".txt";
  Serial.println(temp);
  char filename[temp.length()+1];
  temp.toCharArray(filename, sizeof(filename));
  myFile = SD.open(filename, FILE_WRITE);  
  if (myFile) {
    Serial.print("Writing to txt file...");
    myFile.print(dt.day(), DEC);
    myFile.print('-');
    myFile.print(dt.month(), DEC);
    myFile.print('-');
    myFile.print(dt.year(), DEC);
    myFile.print(' ');
    myFile.print(dt.hour(), DEC);
    myFile.print(':');
    myFile.print(dt.minute(), DEC);
    myFile.print(':');
    myFile.print(dt.second(), DEC);
    myFile.println();
    myFile.close();
    Serial.println("done.");
  } else {
    Serial.println("error opening txt file");
  }
}

我只有"error opening txt file",不知道为什么。我的文件名是正确的,当我在控制台上打印它时,它看起来像这样:DIVE652014.TXT

当我从Adafruit更准确地阅读有关SD分线板的文档时,我弄清楚了为什么不工作:

SD卡库不支持像我们这样的"长文件名"用于。相反,它使用8.3格式的文件名,所以保留文件名字短!例如,IMAGE.JPG可以,datalog.txt可以"我的GPS日志文件。"文字"不是!

所以我有10个字符,但它只接受文件名中的8个字符。

谢谢你的帮助!:)