我正在使用这段代码在 arduino 中接收串行数据 Serial.print((char)Serial2.read());
:
y456x123
y444x333
现在我想将数据存储在 x 和 y 变量中,作为 x=123
& y=456
类似地第二次
x=333
& y=444
。
我该怎么做?
最佳答案
伙计,每次传输您将有大约 9 个事件调用(代码执行),但是您没有进行正确的解析,因为您将字母('x' 和 'y')提供给 atoif 函数.
我建议你把所有的都存入一个数组,然后循环到数组中,把数字加到循环中。
存储:
array[possition] = received;
possition++;
然后,当存储完成时(收到 == '\n'):
if(array[possition] != 'x'){
x = (x*10) + (int) array[possition];
}
这是一个简单的想法,需要在 if 语句中对其进行过滤,否则它会将两个值相加。
关于c++ - 从arduino中串行接收的数据解析整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21996302/