suoma 发表于 2016-9-8 12:46:56

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) ;   
}
}

Super169 发表于 2016-9-9 10:16:34

0 是來自這裡的:
   Serial.println(Serial.available());

suoma 发表于 2016-9-9 20:36:48

Super169 发表于 2016-9-9 10:16
0 是來自這裡的:
   Serial.println(Serial.available());

谢谢,明白了
页: [1]
查看完整版本: SD记录数据和串口软件收到的数据不一样,少了0