我的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
提前致谢!
PS:对不起我的英语,这不是我的母语
答案 0 :(得分:1)
当我从Adafruit更准确地阅读有关SD分线板的文档时,我想出了为什么这不起作用:
SD卡库不支持长文件名'比如我们 以前。相反,它使用8.3格式的文件名,所以保留文件 名字短!例如IMAGE.JPG很好,datalog.txt很好 "我的GPS日志文件。文字"不是!
所以我有10个字符,但它只接受文件名中的8个字符。
感谢您试图帮助我! :)