0

我正在使用以下代码在 arduino 中接收串行数据Serial.print((char)Serial2.read());

y456x123

y444x333

现在我想将数据存储在 x & y 变量中x=123y=456类似地第二次 x=333& y=444

我怎样才能做到这一点?

4

2 回答 2

1

好吧,伙计,每次传输您将有大约 9 个事件调用(代码执行),但是您没有进行正确的解析,因为您将字母('x' 和 'y')提供给 attoif 函数。

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

储藏:

array[possition] = received;
possition++;

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

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

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

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

于 2014-02-24T19:50:36.673 回答
0

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

快速的解决方案是使用 String 对象,最好的方法是学习 C 基础是一些好书/指南,这里有太多关于指针的内容要写。

于 2014-02-24T19:39:16.507 回答