多语言展示
当前在线:700今日阅读:6今日分享:31

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

arduino发送一组字符和数字怎么分割开。下面就简单的介绍怎么写代码,和大概原理。才学没多久,希望能理解
工具/原料
1

装有arduino电脑一台(arduino IDE或python开发工具Sublime Text)

2

arduino板子一块(随便那款)

3

arduino数据(连接电脑通信和下载程序)

方法/步骤
1

代码如下:有截图

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;}这句就是如果接收的字符串里面没有整数 ,就不会覆盖全局变量的值如下图

4

如果发送的只有数字,不需要把原来的字符串清空 同上zifu=chars;前加入一个判断if(chars>0){zifu=chars;}更具实际的需要,自行修改代码即可

注意事项
1

改代码一定要用英文字符 不然有时会报错

2

仔细,耐心

推荐信息