zxg588 发表于 2015-5-18 09:47:45

Java串口编程学习1-环境配置(64位Win7)

  最近在做zigbee的课程设计,需要Java实现对串口数据的读写操作。
  网上找了很多代码,好像都比较过时了,直接拿来用没法跑通……QAQ……然后自己写个教程留底,如有不当之处还请各位路过的大神赐教。
  参考资料:http://www.docin.com/p-224301266.html
  操作系统:64位Win7
  java的串口API包:javax.comm在windows下的开法维护已经停止了,RXTX的旧版本支持在javax.comm-win32-2.0基础上的扩展,RXTX新版本支持对javax.comm的覆盖式支持,原来用javax.comm的把所有import javax.comm.*改成import gnu.io.*即可。
  支持不同系统的RXTX包下载地址:http://mfizz.com/oss/rxtx-for-java
  解压后把mfz-rxtx-2.2-20081207-win-x64文件夹下的rxtxSerial.dll放到%JAVA_HOME%\jre\bin和C:\Windows\System32下面。
  把RXTXcomm.jar放到%JAVA_HOME%\jre\lib\ext下面。
  %JAVA_HOME%为你安装JDK的路径,我的是:C:\Program Files\Java\jdk1.7.0_45
  开发环境我用的IntelliJ IDEA,Ctrl+Shift+alt+S,在Libraries中把RXTXcomm.jar包导入即可。
  测试程序:查看PC上的串口
  PS.因为我用的笔记本,所以读出来的串口是COM8,一般的串口调试助手读不到。推荐Access Port For Win7——一款功能强大的串口调试软件。
  下载地址:http://www.onlinedown.net/soft/119517.htm



import gnu.io.CommPortIdentifier;
import java.util.Enumeration;
/**
* Created by gbr on 13-12-11.
*/
public class ReadCom {
static Enumeration portList;
static CommPortIdentifier portId;
public static void main( String[] args ){
try{
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()){
portId = (CommPortIdentifier)portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL){
System.out.println(portId.getName());
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
  
页: [1]
查看完整版本: Java串口编程学习1-环境配置(64位Win7)