6605浏览
查看: 6605|回复: 1

串口读取字符串并将字符串分割存到数组中

[复制链接]
本帖最后由 ejiyuan1 于 2014-11-14 10:28 编辑
  1. 方法一:
  2. String comdata = "";
  3. float t1[6]={0};
  4. int mark =0;
  5. char *p=NULL;
  6. void setup()
  7. {
  8. Serial.begin(9600);
  9. }
  10. void loop()
  11. {
  12.   int i=0;
  13.   int j=0;
  14.   comdata="";
  15.   while (Serial.available() > 0)
  16.   {
  17.      comdata += char(Serial.read());
  18.      delay(2);
  19.      mark = 1;
  20.   }
  21.   if(mark == 1)
  22.   {
  23.     Serial.println(comdata);
  24.     p=strtok((char*)comdata.c_str(),",");
  25.     while(p)
  26.     {
  27.       t1[i]=atof(p);
  28.       i++;
  29.       p=strtok(NULL,",");
  30.     }<div class="blockcode"><blockquote>方法二:
  31. void getdata()
  32. {
  33.       int i=0;
  34.       int j = 0;
  35.       while (tcpClient.available() > 0)
  36.       {
  37.       
  38.         comdata += char(tcpClient.read());
  39.         delay(2);
  40.         mark = 1;
  41.       }
  42.      
  43.       if(mark == 1)  
  44.       {
  45.          tcpClient.fastrprintln("receive data success");
  46.        // Serial.println(comdata);        
  47.       //  Serial.println(comdata.length());
  48.      
  49.         for(int i = 0; i < comdata.length() ; i++)
  50.         {
  51.           if(comdata[i] == ',')
  52.           {
  53.             j++;
  54.           }
  55.           else
  56.           {
  57.             numdata[j] = numdata[j] * 10 + (comdata[i] - '0');
  58.           }
  59.         }
  60.         //comdata的字符串已经全部转换到numdata了,清空comdata以便下一次使用,
  61.         //如果不请空的话,本次结果极有可能干扰下一次。
  62.         comdata = String("");
  63.         mark=0;
  64.          
  65.           for( i=0;i<2;i++)
  66.           {
  67.             // Serial.println(numdata[i]);     
  68.              //numdata[i] = 0;      
  69.           }
  70.            for( i=0;i<2;i++)
  71.           {
  72.             // Serial.println(numdata[i]);     
  73.              numdata[i] = 0;      
  74.           }
  75.            
  76.       }
  77. }
复制代码


    comdata = String("");
    mark=0;
  
    for(int j=0;j<6;j++)
    {
      Serial.println(t1[j]);
    }
  }
  
}

什tm  学徒 来自手机

发表于 2017-8-6 08:34:51

这个能不能讲解一下,毕竟是新手
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail