Arduino进行串行读取字符串拆分然后转换为Int
Posted
技术标签:
【中文标题】Arduino进行串行读取字符串拆分然后转换为Int【英文标题】:Arduino making a serial read string split and Then convert to 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 之间的整数。
【问题讨论】:
您必须先阅读 整个 字符串,然后才能进行转换。您的代码不能确保您获得了整个字符串。 【参考方案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
要合并它们,请使用strcat
或sprintf
http://arduino.cc/en/Serial/ParseInt, http://arduino.cc/en/Serial/ParseFloat
【讨论】:
以上是关于Arduino进行串行读取字符串拆分然后转换为Int的主要内容,如果未能解决你的问题,请参考以下文章
Arduino Uno Raspberry Pi 串行通信双读数