我想通过正确使用串行端口/dev/tty.usbmodem1421
(Mac OS X,Mountain Lion(v10.8),Java 6和rxtx库,将我的Java应用程序中的整数发送到Arduino安装)。
简而言之,我的Java应用程序以正确的方式查找并打开串行端口并添加EventListener:
serialPort = (SerialPort) portId.open(this.getClass().getName(), TIME_OUT);
serialPort.setSerialPortParams(DATA_RATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
input = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
output = serialPort.getOutputStream();
serialPort.addEventListener(this);
serialPort.notifyOnDataAvailable(true);
我的Arduino sketch正在从串口读取:
int num=0;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
num = Serial.read();
// Code for lighting num LEDs
}
}
我有两种情况:
在案例1)中,Arduino草图抛出PortInUse异常,在案例2)Java应用程序执行它。
我该如何解决?
答案 0 :(得分:1)
尝试在Arduino中关闭串口监视器。我们无法建立到单个串行端口的多个连接。
当您在Arduino中打开串行监视器时,它将连接到配置的端口号,因此您无法通过Java代码访问同一端口。