请问各位大神,如何验证是否成功写进呢?我把向SD卡写数据和读SD卡内文件这俩整合到一起,为啥读到的不是我写进去的东西呢?可不可以请各位帮我看一下问题在哪里
/*
此例子展示如果记录三个模拟引脚数值到SD卡,使用SD库。
*/
#include <SPI.h>
#include <SD.h>
// CS引脚为pin4,这里也沿用官方默认设置
const int chipSelect = 4; //设定CS接口
void setup()
{
Serial.begin(9600); //设置串口通信波特率为9600
Serial.print("Initializing SD card..."); //串口输出数据Initializing SD card...
pinMode(10, OUTPUT);
if (!SD.begin(chipSelect)) //如果从CS口与SD卡通信失败,串口输出信息Card failed, or not present
{
Serial.println("Card failed, or not present");
return;
}
Serial.println("card initialized."); //与SD卡通信成功,串口输出信息card initialized.
File dataFile = SD.open("datalog.txt"); //打开datalog.txt文件
if (dataFile)
{
while (dataFile.available())
{ //检查是否dataFile是否有数据
Serial.write(dataFile.read()); //如果有数据则把数据发送到串口
}
dataFile.close(); //关闭dataFile
}
else
{
Serial.println("error opening datalog.txt"); //如果文件无法打开串口发送信息error opening datalog.tx
}
}
void loop()
{
// 定义数组
String dataString = "1234";
// 读取三个传感器值,写入数组
/* for (int analogPin = 0; analogPin < 3; analogPin++)
{
int sensor = analogRead(analogPin);
dataString += String(sensor);
if (analogPin < 2)
{
dataString += ",";
}
}*/
// 打开文件,注意在同一时间只能有一个文件被打开
// 如果你要打开另一个文件,就需要先关闭前一个
File dataFile = SD.open("datalog.txt", FILE_WRITE);
// 打开datalog.txt文件,读写状态,位置在文件末尾。
if (dataFile)
{
dataFile.println(dataString);
dataFile.close();
// 数组dataString输出到串口
// Serial.println(dataString);
}
// 如果无法打开文件,串口输出错误信息error opening datalog.txt
else
{
Serial.println("error opening datalog.txt");
}
} |