我对 Arduino 业务还很陌生。如何从 SD 卡读取最后一行?通过以下代码片段,我可以读取第一行(“\n”之前的所有字符)。现在我想添加一个“向后”声明(或其他内容)。
到目前为止我的代码:
#include <SD.h>
#include <SPI.h>
File SD_File;
int pinCS = 10;
char cr;
void setup() {
Serial.begin(9600);
SD.begin();
SD_File = SD.open("test.txt", FILE_WRITE);
SD_File.println("hello");
SD_File.close();
SD_File = SD.open("test.txt");
while(true){
cr = SD_File.read();
if((cr == '\n') && ("LAST LINE?"))
break;
Serial.print(cr);
}
SD_File.close();
}
您可以使用文件类的方法 https://www.arduino.cc/en/Reference/SD like seek
and position
以及 File 基类的方法流类 https://www.arduino.cc/reference/en/language/functions/communication/stream/,例如方法find
.
Method seek
设置打开文件的读取或写入位置。
File file = SD.open("datalog.txt");
if (file) {
uint32_t lineStart = 0;
while (file.available()) {
lineStart = file.position();
if (!file.find((char*) "\n"))
break;
}
file.seek(lineStart);
while (file.available()) {
Serial.write(file.read());
}
file.close();
} else {
Serial.println("error opening datalog.txt");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)