装有arduino电脑一台(arduino IDE或python开发工具Sublime Text)
arduino板子一块(随便那款)
arduino数据(连接电脑通信和下载程序)
代码如下:有截图
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;//赋值给全局变量,每次发送都覆盖原来的数据}
如果中途只发送字符串那么全局变量的整数就会清空,如果不需要清空就把zhengshu=temp;改成if(temp>0){zhengshu=temp;}这句就是如果接收的字符串里面没有整数 ,就不会覆盖全局变量的值如下图
如果发送的只有数字,不需要把原来的字符串清空 同上zifu=chars;前加入一个判断if(chars>0){zifu=chars;}更具实际的需要,自行修改代码即可
改代码一定要用英文字符 不然有时会报错
仔细,耐心