2017-10-14 53 views
0

我正在使用带有Arduino分线板的英特尔Edison。我想将文件保存在SD卡上,并在Arduino IDE上运行一个简单的ReadWrite示例。一切正常,我有一个输出:将文件保存在SD卡上会出错

正在初始化SD卡...初始化完成。写入 test.txt ...完成。 test.txt:测试1,2,3.

但是,然后我把SD卡插入PC,该文件不存在或它是空的。

这是示例代码:

#include <SPI.h> 
#include <SD.h> 

File myFile; 

void setup() 
{ 
// Open serial communications and wait for port to open: 
    Serial.begin(9600); 
    while (!Serial) { 
    ; // wait for serial port to connect. Needed for Leonardo only 
    } 


    Serial.print("Initializing SD card..."); 
    // On the Ethernet Shield, CS is pin 4. It's set as an output by default. 
    // Note that even if it's not used as the CS pin, the hardware SS pin 
    // (10 on most Arduino boards, 53 on the Mega) must be left as an output 
    // or the SD library functions will not work. 
    pinMode(10, OUTPUT); 

    if (!SD.begin(4)) { 
    Serial.println("initialization failed!"); 
    return; 
    } 
    Serial.println("initialization done."); 

    // open the file. note that only one file can be open at a time, 
    // so you have to close this one before opening another. 
    myFile = SD.open("test.txt", FILE_WRITE); 

    // if the file opened okay, write to it: 
    if (myFile) { 
    Serial.print("Writing to test.txt..."); 
    myFile.println("testing 1, 2, 3."); 
    // close the file: 
    myFile.close(); 
    Serial.println("done."); 
    } else { 
    // if the file didn't open, print an error: 
    Serial.println("error opening test.txt"); 
    } 

    // re-open the file for reading: 
    myFile = SD.open("test.txt"); 
    if (myFile) { 
    Serial.println("test.txt:"); 

    // read from the file until there's nothing else in it: 
    while (myFile.available()) { 
     Serial.write(myFile.read()); 
    } 
    // close the file: 
    myFile.close(); 
    } else { 
    // if the file didn't open, print an error: 
    Serial.println("error opening test.txt"); 
    } 
} 

void loop() 
{ 
    // nothing happens after setup 
} 
+0

1.是否有文件对象的* .flush()*方法?如果是这样,请在* .close()*之前调用它。 2.如果你评论第二次开幕(当然还有相关的话),这有帮助吗? – 0andriy

回答

0

我用这个命令卸载

umount /media/sdcard 

并将其保存的问题。