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

标签 c++ serial-port arduino cmath

我正在使用这段代码在 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/

相关文章:

c++ - 更换QPen的-如何删除

c++ - 为什么 Windows 上的 sys/types.h 中没有定义 S_IRWXG 和 S_IRWXO?

c++ - 下标对 const 的引用

c# - 发送命令后如何捕获串口的返回?

c++ - 如何将获取的字符串数据转换为字符数组?

c++ - 当静态链接库时静态变量会发生什么

c - 嵌入式设备上的强大 RS232 串行通信方案是什么?

python - 无法使用Interceptty或slsnif嗅探通过串口发送的数据

c++ - PROGMEM 从字符串数组中获取单个字符?

ios - CoreBluetooth 框架是否与 BLE 5.0 设备(外围设备)兼容?