如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Java串口通信编程第页/共NUMPAGES9页Java串口通信编程指南概述在java中,利用JavaCommunication包可以操作串口,但官方的包在3.0之后就只支持Linux和Solaris平台了,Windows平台的只支持到98年出的2.0版本,不过在XP下还能使用。另外,也可以用开源的Rxtx实现串口通信,这里仅以JavaCommunication包,在Windows平台实现串口通信进行说明。前期准备下载JavaCommunication包下载地址如下:HYPERLINK"http://mdubuc.freeshell.org/Jolt/javacomm20-win32.zip"http://mdubuc.freeshell.org/Jolt/javacomm20-win32.zip。如果是非Windows平台,请到Sun网站选择其他版本下载。地址如下:http://www.sun.com/download/products.xml?id=43208d3d配置解压缩javacomm20-win32.zip把win32com.dll拷贝到{JAVA_HOME}\jre\bin把comm.jar拷贝到{JAVA_HOME}\jre\lib\ext把javax.comm.properties拷贝到{JAVA_HOME}\jre\libsetCLASSPATH={JAVA_HOME}\jre\lib\ext\comm.jar;%classpath%实现过程主要步骤包括:获得串口标识打开串口设置串行端口通讯参数获取输入(出)流进行读写操作获得串口标识指定串口的端口号,生成串口的标识类的实例。javax.comm.CommPortIdentifier是通讯端口管理器,控制访问到通讯端口的中心类。一个应用程序首先使用CommPortIdentifier中的方法,通过相关的驱动去获取那些通讯端口是可用的并且选择一个端口便于开始。它包括如下功能:a.通过驱动决定通讯端口是可用的。b.打开通讯端口为了I/O操作。c.决定端口的拥有者。d.解析端口拥有者的争夺。e.管理事件显示在端口拥有者的中的状态改变。示例代码如下:代码:CommPortIdentifierportID=null;try{//CommPortIdentifierを取得portID=CommPortIdentifier.getPortIdentifier("COM1");}catch(NoSuchPortExceptionex){ex.printStackTrace();}打开串口示例代码如下:代码:try{//ポートのオープンport=(SerialPort)portID.open("portApp",5000);}catch(PortInUseExceptionex){ex.printStackTrace();}5000(毫秒)是超时时间。设置串行端口通讯参数设置串口传输的波特率、数据位、停止位、奇偶校验等参数。示例代码如下:代码:try{//通信条件の設定//通信速度9600baud//データビット8bit//ストップビット1bit//パリティなし//フローコントロールの設定//無制御を使用port.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);port.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);}catch(UnsupportedCommOperationExceptionex){ex.printStackTrace();System.exit(1);}获取输入(出)流利用getInputStream()以及getOutputStream()从每个串口产生对应的输入输出流对象。示例代码如下:代码://受信バッファprotectedBufferedReadercomReader;//送信バッファprotectedBufferedOutputStreamcomWriter;try{//RS-232C入力用のReaderを生成comReader=newBufferedReader(newInputStreamReader(port.getInputStream()));//RS-232C出力用のWriterを生成comWri