0

我正在使用一个 android 应用程序来发送值来控制伺服系统。代码:

char inputData[4];  
char buffer[3];
void loop()
{



   if(Serial.available() > 3) {
      for (int i = 0; i < 4; i++){
        inputData[i] = Serial.read();

        }
    char buffer[4];
    buffer[0] = inputData[1];
    buffer[1] = inputData[2];
    buffer[2] = inputData[3];
    buffer[3] = '\0';
    int angle = atoi(buffer);
    Serial.write(angle);


   }
}

问题:我得到值 + AF 字母来寻址每个伺服 - A10、A180、B30 等。现在问题是将其转换为实际整数。如您所见,我已经声明了一个字符数组来存储整数,并且按照 arduino 论坛上的帖子中的建议,我在数组末尾添加了一个 \0。目前,Atoi 返回随机字符,主要是正方形和一些随机数。我什至尝试将它们分配给一个字符串,然后分配给 .toInt() 但同样的问题,主要是正方形。有任何想法吗?谢谢!

4

1 回答 1

0

使用printprintln将数字视为文本。write将其作为字节发送,串行监视器显示带有该 ASCII 代码的符号。

于 2018-11-10T18:50:50.163 回答