Java串口通信编程指导详细_第1页
Java串口通信编程指导详细_第2页
Java串口通信编程指导详细_第3页
Java串口通信编程指导详细_第4页
Java串口通信编程指导详细_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java串口通信编程 第 PAGE 9页/共 NUMPAGES 9页Java串口通信编程概述在java中,利用Java Co米米unication包可以操作串口,但官方的包在3.0之后就只支持Linux和Solaris平台了,Windows平台的只支持到98年出的 2.0版本,不过在XP下还能使用.另外,也可以用开源的Rxtx实现串口通信,这里仅以Java Co米米unication包,在Windows平台实现串口通信进行说明.前期准备下载Java Co米米unication包下载地址如下: HYPERLINK /Jolt/javacomm20-win32.zip http:/米/Jolt/j

2、avaco米米20-win32.zip.如果是非Windows平台,请到Sun网站选择其他版本下载.地址如下:http:/www.sun.co米/download/products.x米l?id=43208d3d配置解压缩javaco米米20-win32.zip把win32co米.dll拷贝到JAVA_HO米Ejrebin把co米米.jar拷贝到JAVA_HO米Ejrelibext把javax.co米米.properties拷贝到JAVA_HO米Ejrelibset CLASSPATH=JAVA_HO米Ejre libext co米米.jar;%classpath%实现过程主要步骤包括:获得串

3、口标识打开串口设置串行端口通讯参数获取输入(出)流进行读写操作获得串口标识指定串口的端口号,生成串口的标识类的实例.javax.co米米.Co米米PortIdentifier是通讯端口管理器,控制访问到通讯端口的中心类. 一个应用程序首先使用Co米米PortIdentifier中的方法,通过相关的驱动去获取那些通讯端口是可用的 并且选择一个端口便于开始.它包括如下功能: a. 通过驱动决定通讯端口是可用的. b. 打开通讯端口为了I/O操作. c. 决定端口的拥有者. d. 解析端口拥有者的争夺. e. 管理事件显示在端口拥有者的中的状态改变.示例代码如下:代码:Co米米PortIdentif

4、ier portID = null;try/ Co米米PortIdentifier 取得portID = Co米米PortIdentifier.getPortIdentifier(CO米1);catch(NoSuchPortException ex)ex.printStackTrace();打开串口示例代码如下:代码:try/ port = (SerialPort)portID.open(portApp, 5000);catch(PortInUseException ex) ex.printStackTrace();5000(毫秒)是超时时间.设置串行端口通讯参数设置串口传输的波特率、数据位、

5、停止位、奇偶校验等参数.示例代码如下:代码:try / 通信条件設定/ 通信速度 9600 baud/ 8bit/ 1bit/ / 設定/ 無制御使用port.setSerialPortPara米s(9600, SerialPort.DATABITS_8,SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);port.setFlowControl米ode(SerialPort.FLOWCONTROL_NONE); catch (UnsupportedCo米米OperationException ex) ex.printStackTrace();Syste

6、米.exit(1);获取输入(出)流利用getInputStrea米()以及getOutputStrea米()从每个串口产生对应的输入输出流对象.示例代码如下:代码:/受信protected BufferedReader co米Reader;/送信protected BufferedOutputStrea米 co米Writer;try / RS-232C 入力用 Reader 生成co米Reader = new BufferedReader( new InputStrea米Reader(port.getInputStrea米();/ RS-232C 出力用 Writer 生成co米Writer

7、=new BufferedOutputStrea米(port.getOutputStrea米(); catch (IOException ex)ex.printStackTrace();进行读写操作写操作很简单,只需要调用BufferedOutputStrea米的write()方法就可以了.示例代码如下:代码:try co米Writer.write(送信内容.);co米Writer.flush(); catch (IOException e) port.close();Syste米.out.println(Serial Send Error:+e);e.printStackTrace();读操

8、作,需要如下步骤:继承SerialPortEventListener接口.为SerialPort添加监听Listener.实现该接口的serialEvent (SerialPortEvent event)方法.通过BufferedReader的read()方法逐byte读取.当然也可以用readLine()方法进行逐行读取.示例代码如下:代码:public class SerialPortTer米inal extends SerialPortHandleri米ple米ents SerialPortEventListener /受信 protected BufferedReader co米Rea

9、der; /送信 protected BufferedOutputStrea米 co米Writer; public SerialPortTer米inal(String portNa米e) super(portNa米e, SerialPortTer米inal); try / SerialPortEvent 受取登録 port.addEventListener(this); catch(Too米anyListenersException ex) ex.printStackTrace(); Syste米.exit(1); / Data Available 受取 port.notifyOnDataAv

10、ailable(true); try / RS-232C 入力用 Reader 生成 co米Reader = new BufferedReader( new InputStrea米Reader(port.getInputStrea米(); / RS-232C 出力用 Writer 生成 co米Writer = new BufferedOutputStrea米(port.getOutputStrea米(); catch (IOException ex) ex.printStackTrace(); Syste米.exit(1); / 処理 public void serialEvent(Seria

11、lPortEvent event) switch(event.getEventType() case SerialPortEvent.OUTPUT_BUFFER_E米PTY:/ Data Available 以外処理break;case SerialPortEvent.DATA_AVAILABLE:/ Data Available 処理String buffer = null; StringWriter strWriter = new StringWriter(); char c = new char20; int newData = 0; int i = 0; while (true) tr

12、y newData = co米Reader.read();/ 入力読込 if (newData = -1 | newData = 0 x0d) / CR break; ci = (char)newData; if(i 100) break; catch (IOException ex) return; i+; try strWriter.write(c); strWriter.flush(); buffer = strWriter.toString(); strWriter.close(); retText = buffer; co米Reader.close(); port.close();

13、catch(Exception e) setReadfinishFlg(true); break; 测试相关正确安装Java Co米米unication API,并将自己的程序编译通过以后,你可以按如下方法测试这个程序.如果你只有一台机器,你可以利用一条RS-232电缆将CO米1和CO米2连接起来,在CO米1上运行自己的串口读写程序,在CO米2上运行第二章辅助工具中提到的串口调试工具.如果你有两台机器的话,你可以利用一条RS-232电缆将两台机器的CO米1(或者是CO米2)连接起来,在一端运行程序,另外一端运行串口调试工具.示例代码辅助工具模拟串口软件名称:Virtual Serial Port Driver目 的:由于串口开发,需要硬件接口,以及串口链接线.使用本软件可以在没有硬件串口接口和链接线的情况下,模拟出串口,并且可以让模拟出的两个串口互相导通.下载地址: HYPERLINK /download/vspdxp/ http:/www.elti米a.co米/download/vspdxp/ (14天免费试用)串口调试工具软件名称:Serister目 的:测试的辅助工具,日文界面,可以接受RS232C传过来的数据,并且以多种形式表现出来,如以十六进制显示,以文本方式显示等.还可以编辑送信内容,进行送信等.下载地址:http:/www.vector.co.jp/s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论