我想通过串行端口从Arduino接收数字引脚值1(高)或0(低)。

我无法使用以下代码读取任何数据:

byte[] bbuffer = new byte[1];

try {
    mInputStream.read(bbuffer);
}
catch (IOException e) {
    new Exception("Arduino-Board antwortet nicht! Timeout!!");
}

if (bbuffer[0] == (byte)1){
    PinValue.setText("HIGH");
}
else if (bbuffer[0] == (byte)0){
    PinValue.setText("LOW");
}

最佳答案

您没有在问题中提供相关信息:如何设置InputStream

但是您的代码仍然存在一些缺陷:


  mInputStream.read(bbuffer);


InputStream.read的一般约定是,还必须检查read的返回值。如果read返回零或负数,则bbuffer的内容保持不变。


  新的异常(“ Arduino板antwortet nicht!超时!”);


您仅创建一个新异常,但不抛出该异常。您必须在该行中添加throw

10-04 18:45