SD记录数据和串口软件收到的数据不一样,少了0
串口软件收到的数据和SD卡记录的数据不一样,SD中少了0,不知道什么原因?还请分析一下程序,串口缓冲区大小修改为20
File myFile;
//char data;
//int firstSensor = 0; // first analog sensor
//int secondSensor = 0; // second analog sensor
//int thirdSensor = 0; // digital sensor
byte inByte; // incoming serial byte
//String Byte="";
void setup()
{
// start serial port at 1200 bps,EVEN check,2 stop bit
Serial.begin(1200,SERIAL_8E1);
/*while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}*/
pinMode(10, OUTPUT);
if (!SD.begin(4)) {
//Serial.println("initialization failed!");
return;
}
//pinMode(2, INPUT); // digital sensor is on digital pin 2
// establishContact();// send a byte to establish contact until receiver responds
}
void loop()
{
int i;
if (Serial.available() > 0) {
inByte=Serial.read();
myFile = SD.open("test10.txt", FILE_WRITE);
if (myFile)
{
// get incoming byte:
// read first analog input, divide by 4 to make the range 0-255:
//firstSensor = analogRead(A0)/4;
// delay 10ms to let the ADC recover:
//delay(10);
// read second analog input, divide by 4 to make the range 0-255:
//secondSensor = analogRead(1)/4;
// readswitch, map it to 0 or 255L
//thirdSensor = map(digitalRead(2), 0, 1, 0, 255);
// send sensor values:
// Serial.write(firstSensor);
// Serial.write(secondSensor);
//for(i=0;i<20;i++)
//{
Serial.println(inByte,HEX);
myFile.println(inByte,HEX); ///myFile.println(inByte,HEX);
//}
myFile.close();
//delay(100);
while(Serial.read() >= 0)
{}
Serial.println();
Serial.println(Serial.available());
//Serial.print(Serial.read());
}
delay(100) ;
}
} 0 是來自這裡的:
Serial.println(Serial.available()); Super169 发表于 2016-9-9 10:16
0 是來自這裡的:
Serial.println(Serial.available());
谢谢,明白了
页:
[1]