gpt4 book ai didi

java - Java 和 Arduino 进程共享串口

转载 作者:行者123 更新时间:2023-12-01 14:40:49 26 4
gpt4 key购买 nike

我想使用串行端口 /dev/tty.usbmodem1421 将一个整数从 Java 应用程序发送到 Arduino(Mac OS X、Mountain Lion (v10.8)、Java 6、正确安装rxtx库)。简而言之,我的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. 我启动 Java 应用程序,然后启动 Arduino 草图
  2. 我启动 Arduino 草图,然后启动 Java 应用程序

在情况 1) 中,Arduino 草图会抛出 PortInUse 异常,在情况 2) 中,Java 应用程序会抛出异常。

如何解决?

最佳答案

尝试关闭 Arduino 中的串行监视器。我们无法与单个串行端口建立多个连接。

当您在 Arduino 中打开串行监视器时,它将连接到配置的端口号,因此您无法通过 Java 代码访问同一端口。

关于java - Java 和 Arduino 进程共享串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15981362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com