ejiyuan1 发表于 2014-11-14 10:26:41

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

本帖最后由 ejiyuan1 于 2014-11-14 10:28 编辑

方法一:

String comdata = "";
float t1={0};
int mark =0;
char *p=NULL;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int i=0;
int j=0;
comdata="";
while (Serial.available() > 0)
{
   comdata += char(Serial.read());
   delay(2);
   mark = 1;
}
if(mark == 1)
{
    Serial.println(comdata);
    p=strtok((char*)comdata.c_str(),",");
    while(p)
    {
      t1=atof(p);
      i++;
      p=strtok(NULL,",");
    }<div class="blockcode"><blockquote>方法二:
void getdata()
{
      int i=0;
      int j = 0;
      while (tcpClient.available() > 0)
      {
      
      comdata += char(tcpClient.read());
      delay(2);
      mark = 1;
      }
   
      if(mark == 1)
      {
         tcpClient.fastrprintln("receive data success");
       // Serial.println(comdata);      
      //Serial.println(comdata.length());
   
      for(int i = 0; i < comdata.length() ; i++)
      {
          if(comdata == ',')
          {
            j++;
          }
          else
          {
            numdata = numdata * 10 + (comdata - '0');
          }
      }
      //comdata的字符串已经全部转换到numdata了,清空comdata以便下一次使用,
      //如果不请空的话,本次结果极有可能干扰下一次。
      comdata = String("");
      mark=0;
         
          for( i=0;i<2;i++)
          {
            // Serial.println(numdata);   
             //numdata = 0;      
          }

         for( i=0;i<2;i++)
          {
            // Serial.println(numdata);   
             numdata = 0;      
          }
         
      }
}

    comdata = String("");
    mark=0;

    for(int j=0;j<6;j++)
    {
      Serial.println(t1);
    }
}

}

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

这个能不能讲解一下,毕竟是新手
页: [1]
查看完整版本: 串口读取字符串并将字符串分割存到数组中