Win7環境下Java串口資料讀寫
最近在實際專案中,並需要Java語言來實現對串列資料的讀取和寫入操作。本來可以用javax.comm這個包的,但是經過幾次測試,始終不能讀出PC上的串口;於是我換了rxtx包在Myeclipse8.6下進行測試,測試結果表明可以獲得到PC的可用端口。
RXTX套件下載位址:http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip
下載解壓縮後,其設定環境如下:
把下載包中-2.1-7-bins-r2Windowsi368-mingw32 xtxSerial.dll
放到你%java_home%jre bin下面(%java_home%jre bin xtxSerial.dll)
把下載包中rxtx-2.1-77775 jar放到%java_home%jre lib ext下面註:%java_home%為你安裝JDK的
如果是MyEclipse,其預設JRE為 Program FilesGenuitecCommonbinarycom.sun.java.jdk.win32.x86_1.6.0.將上述的檔案放到該JRE對應的目錄下.
下面是在Myeclipse中引用RXTXcomm.jar,選擇工程Build Path,選擇Configure Build
Path,選擇Libraries,點選Add Exteral
JARS按鈕,在彈出的對話框中找到RXTXcomm.jar,然後選中,點選打開,再點選OK即可。
好了,下面就可以進行程式的編寫了,首先看看能都取得到你PC上的串口,程式如下:
package test;
import java.util.Enumeration;
import gnu.io .*;
public class TestSerial {
@SuppressWarnings("unchecked")
static Enumeration
portList;
static CommPortentifier portIdmnectifier port 是
portList = CommPortIdentifier.getPortIdentifiers();
//得到目前連線上的連接埠
while (portList.hasMoreElements()) {
portId = (CommPortIdentififier) portList.nextElement(next; () == CommPortIdentifier.PORT_SERIAL)
{//判斷如果連接埠類型是串列埠
//if (portId.getName().equals("COM3")) { //判斷如果COM3連接埠已經啟動就連接
System.out.println(portId.getName());
}
}
//}
} catch (Exception e) {
e.printStack
} catch (Exception e) {e.printStack}
}測試結果:Stable Library======================================= ==
Native lib Version = RXTX-2.1-7Java lib Version = RXTX-2.1-7
COM1
口操作相關網紙!