串口软件收到的数据和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;
- // read switch, 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) ;
- }
- }
复制代码 |