我的背景是 php,所以进入 char 等低级事物的世界是字节、位、二进制值等,需要一些时间才能掌握。
我在这里尝试做的是将一些值从 Ardunio 板发送到 openFrameWorks(两者都是 c++)。
当被要求发送数据时,该脚本当前所做的(并且适用于我可能添加的一个传感器)是:
int value_01 = analogRead(0); // which outputs between 0-1024
unsigned char val1;
unsigned char val2;
//some Complicated bitshift operation
val1 = value_01 &0xFF;
val2 = (value_01 >> 8) &0xFF;
//send both bytes
Serial.print(val1, BYTE);
Serial.print(val2, BYTE);
显然,这是获取数据的最可靠方法。所以现在它是通过串口发送的,字节被添加到一个 char 字符串并通过以下方式转换回来:
int num = ( (unsigned char)bytesReadString[1] << 8 | (unsigned char)bytesReadString[0] );
所以回顾一下,我试图获取 4 个传感器的数据(我假设这将是这些串行打印中的 8 个?)并在这一切结束时拥有 int num_01 - num_04...。
我假设这(与大多数事情一样)对于有这些概念经验的人来说可能很容易。