【问题标题】:Arduino making a serial read string split and Then convert to IntArduino进行串行读取字符串拆分然后转换为Int
【发布时间】:2013-12-08 12:37:55
【问题描述】:

我一直在尝试使用多种不同的方式在 arduino 中拆分字符串,但似乎没有任何效果。我最近的尝试:

String inData = "";
    int cPosition;
    String data[2];
    int count = 1;

    if (Serial.available() > 0) {

            int ssize = Serial.available();
            for(int i=0;i<ssize;i++){
              inData += (char)Serial.read(); 
            }

            do{
               cPosition =  inData.indexOf(':');
                if(cPosition != -1)
               {
                 data[count] = inData.substring(0,cPosition);
                 count++;
               } 
             }while(cPosition >=0);


            Serial.println(data[1]);

    }

我有两个值作为“00:00”输入,我想拆分它们,但也将拆分值转换为 Int,因为它们始终是 00 到 100 之间的整数。

【问题讨论】:

  • 您必须先阅读 整个 字符串,然后才能进行转换。您的代码不能确保您获得了整个字符串。

标签: c++ string split serial-port arduino


【解决方案1】:

嘿,你有没有试过x=Serial.parseInt(); 这会读取下一个数据,如果它会找到一个整数,例如“fahijah123234fjrkaljf”进入 x 将是 123234 与下一个整数值相同

//incommeing: jsj123456asklfj654321faskl
int x,y;
x=Serial.parseInt();
y=Serial.parseInt();

Serial.println(x);//123456
Serial.println(y);//654321

要合并它们,请使用strcatsprintf

http://arduino.cc/en/Serial/ParseInt, http://arduino.cc/en/Serial/ParseFloat

【讨论】:

    猜你喜欢
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多