为了解决这一问题,我们需要使用一个无阻塞SD卡库,例如SdFat库。以下是一个使用SdFat库的示例代码:
#include
SdFat SD;
File myFile;
void setup() {
Serial.begin(9600);
if(!SD.begin(4)) {
Serial.println("SD card initialization failed.");
return;
}
myFile = SD.open("Test.txt", FILE_WRITE);
if(myFile) {
Serial.println("Test.txt created.");
myFile.println("Hello SD card!");
myFile.close();
} else {
Serial.println("Error opening Test.txt.");
}
}
void loop() {
// Do something else here
}
在这个示例中,我们使用SdFat库而不是标准的SD库来避免代码阻塞。该库允许我们打开文件以进行读写,而不必在读写期间停止程序的运行。
使用SdFat库可以避免代码追踪混淆,因为程序不会在SD卡读写时停止运行。