极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13433|回复: 2

SD记录数据和串口软件收到的数据不一样,少了0

[复制链接]
发表于 2016-9-8 12:46:56 | 显示全部楼层 |阅读模式
串口软件收到的数据和SD卡记录的数据不一样,SD中少了0,不知道什么原因?还请分析一下

程序,串口缓冲区大小修改为20
  1. File myFile;
  2. //char data;
  3. //int firstSensor = 0;    // first analog sensor
  4. //int secondSensor = 0;   // second analog sensor
  5. //int thirdSensor = 0;    // digital sensor
  6. byte inByte;         // incoming serial byte
  7. //String Byte="";
  8. void setup()
  9. {
  10.   // start serial port at 1200 bps,EVEN check,2 stop bit
  11.   Serial.begin(1200,SERIAL_8E1);
  12.   /*while (!Serial) {
  13.     ; // wait for serial port to connect. Needed for Leonardo only
  14. }*/
  15.   pinMode(10, OUTPUT);
  16.    
  17.   if (!SD.begin(4)) {
  18.     //Serial.println("initialization failed!");
  19.     return;
  20.   }
  21.   //pinMode(2, INPUT);   // digital sensor is on digital pin 2
  22. // establishContact();  // send a byte to establish contact until receiver responds
  23. }

  24. void loop()
  25. {
  26.   int i;
  27.   if (Serial.available() > 0) {
  28.    inByte=Serial.read();
  29.    myFile = SD.open("test10.txt", FILE_WRITE);
  30.    if (myFile)

  31.     {
  32.     // get incoming byte:
  33.    
  34.     // read first analog input, divide by 4 to make the range 0-255:
  35.     //firstSensor = analogRead(A0)/4;
  36.     // delay 10ms to let the ADC recover:
  37.     //delay(10);
  38.     // read second analog input, divide by 4 to make the range 0-255:
  39.     //secondSensor = analogRead(1)/4;
  40.     // read  switch, map it to 0 or 255L
  41.     //thirdSensor = map(digitalRead(2), 0, 1, 0, 255);  
  42.     // send sensor values:
  43.    // Serial.write(firstSensor);
  44.    // Serial.write(secondSensor);
  45.    //for(i=0;i<20;i++)
  46.    //{
  47.      Serial.println(inByte,HEX);
  48.     myFile.println(inByte,HEX); ///myFile.println(inByte,HEX);
  49.    //}
  50.    myFile.close();
  51.    //delay(100);
  52.    while(Serial.read() >= 0)
  53.    {}
  54.    Serial.println();
  55.    Serial.println(Serial.available());
  56.      //Serial.print(Serial.read());
  57.    }
  58.    delay(100) ;   
  59.   }
  60. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-9-9 10:16:34 | 显示全部楼层
0 是來自這裡的:
   Serial.println(Serial.available());
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-9-9 20:36:48 | 显示全部楼层
Super169 发表于 2016-9-9 10:16
0 是來自這裡的:
   Serial.println(Serial.available());

谢谢,明白了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-4 22:06 , Processed in 0.040376 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表