从arduino中的串行接收数据解析整数

时间:2014-02-24 18:46:14

标签: c++ serial-port arduino cmath

我正在使用此代码Serial.print((char)Serial2.read());

接收arduino中的连续数据
y456x123

y444x333

现在我想将数据存储在x& y变量为x=123& y=456同样是第二次 x=333& y=444

我该怎么做?

2 个答案:

答案 0 :(得分:1)

Wel dude,每次传输你都会有大约9个事件调用(代码执行),但是你没有做出正确的解析,因为你给了atoif函数字母('x'和'y')

我建议你将all存储到一个数组中,然后循环进入数组并将数字添加到循环中。

存储:

array[possition] = received;
possition++;

然后,当存储它完成时(收到=='\ n'):

if(array[possition] != 'x'){

    x = (x*10) + (int) array[possition];
}

这是一个简单的想法,需要在if语句中进行过滤,否则它将添加两个值。

答案 1 :(得分:0)

完全错误,你不知道指针是什么。 这是C / C ++中缺乏知识的原因

快速解决方案是使用String对象,最好的一个是学习C语言是一些好书/指南,关于指针要写在这里太多了。