[英]Serial port sharing by Java and Arduino processes
我想通过使用串行端口/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 草图正在从串行端口读取:
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应用程序执行该异常。
我该如何解决?
尝试在Arduino中关闭串行监视器。 我们无法建立与单个串行端口的多个连接。
当您在Arduino中打开串行监视器时,它将连接到配置的端口号,因此您无法通过Java代码访问该端口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.