|
#include <SPI.h>
#include <SD.h>
File myFile;
char jeep;
String csjeep="";
int csA,csB,csC,csD,csF;
int i;
void setup() {
Serial.begin(9600);
while (!Serial) {
}
if (!SD.begin(4)) {
Serial.println("shi bai");
return;
}
Serial.println("read.......");
// re-open the file for reading:
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// 读文件如果没有显示错误t:
while (myFile.available()) {
jeep=myFile.read();//每次只读一个字符
// Serial.print(jeep);
abcd();
Serial.println("end");
}
// close the file:
myFile.close();
} else {
Serial.println("error opening test.txt");
}
}
void abcd(){
int k=0;
while (k !=1)
{
switch(jeep)
{
case 'A':
Serial.print("A");
csjeep= ' ';
cs19();
csA=csjeep.toInt();
Serial.println( csA);
break;
case 'B':
Serial.print("B");
csjeep= ' ';
cs19();
csB=csjeep.toInt();
Serial.println( csB);
break;
case 'C':
Serial.print("C");
csjeep= ' ';
cs19();
csC=csjeep.toInt();
Serial.println( csC);
break;
case 'D':
Serial.print("D");
csjeep= ' ';
cs19();
csD=csjeep.toInt();
Serial.println( csD);
break;
case 'F':
Serial.print("F");
csjeep= ' ';
cs19();
csF=csjeep.toInt();
Serial.println( csF);
break;
case '\n':
jeep=myFile.read();
break;
case '%':
k=1;
break;
}
}
csjeep= ' ';
}
void cs19(){
for (i=0;i<6;i++ )
{
jeep=myFile.read();
// Serial.print( "jeep");
// Serial.println( jeep);
switch(jeep)
{
case '0'...'9':
csjeep=csjeep += jeep;
// Serial.println( csjeep);
// Serial.print( "i");
// Serial.println( i);
break;
case 'A'...'Z':
//Serial.println( "a-z");
i=20;
break;
case '\n':
//Serial.println( "\n");
i=20;
break;
}
}
}
void loop() {
}
上面的代码我用了很长时间才写出来。但是,太过复杂。有没有高手指点一下。能让他简单一些。代码的目的是将sd卡中的多种数据分开。
例子:
A45B34C34D223F344
A45B34C34D223F344
A233B123C123D324F3432
A33B23C66D89F897
%
分成
A45
B34
C34
D223
F344
数字为int。
http://www.arduino.cn/static/image/smiley/default/smile.gif |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|