arduino串口数据分割字符串和数字

2025-12-30 22:54:09

1、代码如下:

有截图

arduino串口数据分割字符串和数字

2、int zhengshu; String  zifu="";//全局变量   

void setup() {Serial.begin(9600);  }//串口调试

void loop()

{

    Serial.println(zifu);

    Serial.print("shuzi:");

    Serial.println(zhengshu);

    delay(1000);

}

void serialEvent()

{

    String intchars="";//局部变量

    String chars="";

    int temp;

   while(Serial.available()>0)//一直等待数据接收完成 用if的话loop函数执行一次接受1个字符

   {  char inchar=Serial.read();

      if(isDigit(inchar)) //是数字就执行

        {

          intchars+=inchar;//数字字符串

        }

       else chars+=inchar;//否则就是字符串

    }

    temp=intchars.toInt();//将数字字符串转换成整数

    Serial.print("jieshou -.-ok");//调试加入的好习惯  可以不要此句

    zhengshu=temp;//赋值给全局变量,每次发送都覆盖原来的数据

    zifu=chars;//赋值给全局变量,每次发送都覆盖原来的数据

}

3、如果中途只发送字符串那么全局变量的整数就会清空,

如果不需要清空就把zhengshu=temp;改成

if(temp>0){zhengshu=temp;}

这句就是如果接收的字符串里面没有整数 ,就不会覆盖全局变量的值

如下图

arduino串口数据分割字符串和数字

4、如果发送的只有数字,不需要把原来的字符串清空

 同上zifu=chars;前加入一个判断

if(chars>0){zifu=chars;}

更具实际的需要,自行修改代码即可

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢