欢迎来到天天文库
浏览记录
ID:18435437
大小:101.50 KB
页数:8页
时间:2018-09-17
《java串口通信编程指南》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java串口通信编程Java串口通信编程指南第8页/共8页Java串口通信编程1.概述在java中,利用JavaCommunication包可以操作串口,但官方的包在3.0之后就只支持Linux和Solaris平台了,Windows平台的只支持到98年出的2.0版本,不过在XP下还能使用。另外,也可以用开源的Rxtx实现串口通信,这里仅以JavaCommunication包,在Windows平台实现串口通信进行说明。2.前期准备2.1.下载JavaCommunication包²下载地址如下:http://mdubuc.freeshell.org/Jolt/javacomm20-win32
2、.zip。²如果是非Windows平台,请到Sun网站选择其他版本下载。地址如下:http://www.sun.com/download/products.xml?id=43208d3d2.2.配置²解压缩javacomm20-win32.zip²把win32com.dll拷贝到{JAVA_HOME}jrebin²把comm.jar拷贝到{JAVA_HOME}jrelibext²把javax.comm.properties拷贝到{JAVA_HOME}jrelib²setCLASSPATH={JAVA_HOME}jrelibextcomm.jar;%classpath
3、%第8页/共8页Java串口通信编程1.实现过程主要步骤包括:²获得串口标识²打开串口²设置串行端口通讯参数²获取输入(出)流²进行读写操作1.1.获得串口标识指定串口的端口号,生成串口的标识类的实例。javax.comm.CommPortIdentifier是通讯端口管理器,控制访问到通讯端口的中心类。一个应用程序首先使用CommPortIdentifier中的方法,通过相关的驱动去获取那些通讯端口是可用的并且选择一个端口便于开始。它包括如下功能:a.通过驱动决定通讯端口是可用的。b.打开通讯端口为了I/O操作。c.决定端口的拥有者。d.解析端口拥有者的争夺。e.管理事件显示在端口拥有
4、者的中的状态改变。示例代码如下:代码:CommPortIdentifierportID=null;try{//CommPortIdentifierを取得portID=CommPortIdentifier.getPortIdentifier("COM1");}catch(NoSuchPortExceptionex){ex.printStackTrace();}1.2.打开串口示例代码如下:代码:try{//ポートのオープンport=(SerialPort)portID.open("portApp",5000);}catch(PortInUseExceptionex){ex.printSta
5、ckTrace();}第8页/共8页Java串口通信编程5000(毫秒)是超时时间。1.1.设置串行端口通讯参数设置串口传输的波特率、数据位、停止位、奇偶校验等参数。示例代码如下:代码:try{//通信条件の設定//通信速度9600baud//データビット8bit//ストップビット1bit//パリティなし//フローコントロールの設定//無制御を使用port.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);port.setFlowControlMode(
6、SerialPort.FLOWCONTROL_NONE);}catch(UnsupportedCommOperationExceptionex){ex.printStackTrace();System.exit(1);}1.2.获取输入(出)流利用getInputStream()以及getOutputStream()从每个串口产生对应的输入输出流对象。示例代码如下:代码://受信バッファprotectedBufferedReadercomReader;//送信バッファprotectedBufferedOutputStreamcomWriter;try{//RS-232C入力用のReade
7、rを生成comReader=newBufferedReader(newInputStreamReader(port.getInputStream()));//RS-232C出力用のWriterを生成comWriter=newBufferedOutputStream(port.getOutputStream());}catch(IOExceptionex){ex.printStackTrace();}第8页/共8页Java串口通信编程
此文档下载收益归作者所有