簡體   English   中英

Java和Arduino進程共享串口

[英]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. 我先啟動Java應用程序,然后啟動Arduino草圖
  2. 我先啟動Arduino草圖,然后啟動Java應用程序

在情況1)中,Arduino草圖拋出PortInUse異常,在情況2)中,Java應用程序執行該異常。

我該如何解決?

嘗試在Arduino中關閉串行監視器。 我們無法建立與單個串行端口的多個連接。

當您在Arduino中打開串行監視器時,它將連接到配置的端口號,因此您無法通過Java代碼訪問該端口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM