2011-06-20 33 views
7


我第一次嘗試使用javax.comm連接到串行端口(COM4)。它甚至沒有打開串口。serialport寫入和讀取窗口不工作

然後我試着用rxtx庫(rxtx-2.2pre2)來連接。它連接和寫入數據,但不從串口讀取任何數據。

是否有任何使用javax.comm或rxtx庫的JDK /平臺依賴項?

我使用
的Windows XP SP3,
JDK 1.6.0_22,
RXTX-2.2pre2,
USB轉串口適配器,
Portmon(微軟) - 對串口監視活動端口
超級終端 - 檢查COM端口是否真正起作用。
http://goo.gl/mNLNE - 示例代碼用於檢驗讀寫

請讓我知道,如果你經歷過像我這樣的任何類似的問題。

任何幫助表示讚賞!

感謝, Ĵ

+0

這裏有同樣的問題。我也嘗試過使用purejavacomm。我會盡力開始賞金。 – HRJ

回答

1

一些挖後,我能解決這個我自己,通過顯式設置流量控制模式。即使您不需要流量控制,也可以將其明確設置爲FLOWCONTROL_NONE幫助。

Linux上不需要同樣的調用。

如果您將流量控制設置爲硬件,我認爲還需要明確設置RTS才能在此模式下獲得通知。 (未經審覈的)。

1

我試過這段代碼,並且成功了。你需要有三個文件和您:

comm.jar 
javax.comm.properties 
win32com.dll 

,你需要將這些文件放在特定的目錄:

comm.jar 
in /java/jre6/lib/ext , /java/jdk_1.6.0.20/jre6/lib/ext , java/jdk_1.6.0.20/lib 

win32com.dll 
in /java/jre6/bin, /java/jdk_1.6.0.20/bin, /windwos/System32 

javax.comm.properties 
in /java/jdk_1.6.0.20/lib, java/jre/lib , /java/jdk_1.6.0.20/jre/lib 
+0

請嘗試用適當的英文寫出您的答案,而不是文字說話。我們正在尋找SO上的高質量內容。 –

1

我會建議嘗試purejavacomm:http://www.sparetimelabs.com/purejavacomm/index.html

這是一個實現用純Java + JNA編寫的javax.comm,它完全解決了Windows和Linux之間可移植性問題。它也可以在OSX或FreeBSD上運行(還沒有嘗試過),並且應該很容易移植到JNA支持的其他操作系統,比如Solaris。

另一個好處是,你不需要像使用rxtx一樣安裝一個DLL,並且它似乎沒有某個100%的CPU吃rxtx有時在windows上有bug的bug。