C++ arduino中串行接收数据的整数解析
我正在arduino中使用以下代码接收串行数据C++ arduino中串行接收数据的整数解析,c++,serial-port,arduino,cmath,C++,Serial Port,Arduino,Cmath,我正在arduino中使用以下代码接收串行数据Serial.print((char)Serial2.read()): y456x123 y444x333 现在我想在x&y变量中存储数据,类似地,第二次存储为x=123&y=456 x=333和y=444 我该怎么做呢?这完全是错误的,你根本不知道指针是什么。 这是C/C中知识的一大不足++ 最快的解决方案是使用String对象,最好的方法是学习C basic,这是一本好书/指南,这里有太多关于指针的内容要写。好吧,每次传输大约有9个事件调用(
Serial.print((char)Serial2.read())代码>:
y456x123
y444x333
现在我想在x&y变量中存储数据,类似地,第二次存储为x=123
&y=456
x=333
和y=444
我该怎么做呢?这完全是错误的,你根本不知道指针是什么。
这是C/C中知识的一大不足++
最快的解决方案是使用String对象,最好的方法是学习C basic,这是一本好书/指南,这里有太多关于指针的内容要写。好吧,每次传输大约有9个事件调用(代码执行),但你没有进行正确的解析,因为你给了atoif函数字母('x'和'y')
我建议您将所有数据存储到一个数组中,然后循环到数组中,并将数字添加到循环中
储存:
array[possition] = received;
possition++;
然后,当存储完成时(接收=='\n'):
这是一个简单的想法,需要在if语句中对其进行筛选,否则它会同时添加两个值。决定调用Serial2.read()的原因。这是y456x123还是单个字符?您的字符串处理非常糟糕。从char inData[42]开始,这样您就有了一个实际的数组来存储字符。我已经实现了您的想法。
if(array[possition] != 'x'){
x = (x*10) + (int) array[possition];
}