Java串口通信编程指导

上传人:夏** 文档编号:548377970 上传时间:2023-12-05 格式:DOCX 页数:9 大小:14.57KB
返回 下载 相关 举报
Java串口通信编程指导_第1页
第1页 / 共9页
Java串口通信编程指导_第2页
第2页 / 共9页
Java串口通信编程指导_第3页
第3页 / 共9页
Java串口通信编程指导_第4页
第4页 / 共9页
Java串口通信编程指导_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Java串口通信编程指导》由会员分享,可在线阅读,更多相关《Java串口通信编程指导(9页珍藏版)》请在金锄头文库上搜索。

1、Java串口通信编程指导Java串口通信编程概述在java中,利用Java Communication包能够操作串口,但官方的包在 3.0之后就只支持Linux和Solaris平台了,Windows平台的只支持到98年 出的2.0版本,只是在XP下还能使用。另外,也能够用开源的Rxtx实现 串口通信,那个地点仅以Java Communication包,在 Windows平台实现串 口通信进行讲明。前期预备下载 Java Communication 包下载地址如下:http:/mdubuc.freeshell.org/Jolt/javacomm20-win32.zipo配置解压缩 javacom

2、m20-win32.zip把 win32com.dll 拷贝J JAVA_HOMEjrebin把 comm.jar 拷贝到JAVA_HOMEjrelibextset CLASSPATH=JA/A_HOMEjre libext comm.jar;%classpath%实现过程要紧步骤包括:获得串口标识打开串口设置串行端口通讯参数猎取输入(出)流进行读写操作获得串口标识指定串口的端口号,生成串口的标识类的实例。a. 通过驱动决定通讯端口是可用的。b. 打开通讯端口为了 I/O操作。c. 决定端口的拥有者。d. 解析端口拥有者的争夺。e. 治理事件显示在端口拥有者的中的状态改变。示例代码如下:代码:

3、CommPortIdentifier portID = null;try/ CommPortIdentifier 取得portID = CommPortIdentifier.getPortIdentifier(COM1”);catch(NoSuchPortException ex)ex.printStackTrace();打开串口示例代码如下:代码:try(/水一卜才一port = (SerialPort)portID.open(portApp, 5000); catch(PortInUseException ex)(ex.printStackTrace();5000 (毫秒)是超时时刻。设置

4、串行端口通讯参数设置串口传输的波特率、数据位、停止位、奇偶校验等参数。示例代码如下:代码:try (/通信条件刀云定/通信速度9600 baud/亍一夕匕卜8bit/ byyb 1bit/ /罚亍彳L/ 口一卜口一儿云定/照制御在使用port.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);port.setFlowControlMode(SerialPort.FLOWCONTROL_NONE); catch (UnsupportedCommOperation

5、Exception ex) ( ex.printStackTrace();System.exit(1);猎取输入(出)流利用getInputStream()以及getOutputStream()从每个串口产生对应的输 入输出流对象。示例代码如下:代码:/受信yTprotected BufferedReader comReader;/送信yTprotected BufferedOutputStream comWriter;try (/ RS-232C入力用刀 Reader在生成comReader = new BufferedReader(new InputStreamReader(port.ge

6、tInputStream();/ RS-232C 出力用刀 Writer在生成comWriter=new BufferedOutputStream(port.getOutputStream(); catch (lOException ex)(ex.printStackTrace();进行读写操作写操作专门简单,只需要调用BufferedOutputStream的write()方法就能 够了。示例代码如下:代码:try (comWriter.write(送信内容。);comWriter.flush(); catch (IOException e) ( port.close(); System.o

7、ut.println(Serial Send Error:+e); e.printStackTrace();读操作,需要如下步骤:继承 SerialPortEventListener 接口。为 SerialPort 添加监听 Listenero实现该接口的 serialEvent (SerialPortEvent event)方法。通过BufferedReader的read()方法逐byte读取。因此也能够用readLine ()方法进行逐行读取。示例代码如下:代码:public class SerialPortTerminal extends SerialPortHandlerimpleme

8、nts SerialPortEventListener (/受信,汶、了protected BufferedReader comReader;/送信yTprotected BufferedOutputStream comWriter;public SerialPortTerminal(String portName) super(portName, SerialPortTerminal);try / SerialPortEvent 受D取 bM理儿一千public void serialEvent(SerialPortEvent event) switch(event.getEventType

9、() case SerialPortEvent.OUTPUT_BUFFER_EMPTY:/ Data Available 以外ObM理LL、 break;case SerialPortEvent.DATA_AVAILABLE:/ Data Available OM理 String buffer = null; StringWriter strWriter = new StringWriter(); char c = new char20;int newData = 0;int i = 0;while (true) try newData = comReader.read();/ 入力bP一力、

10、以迅乃 if (newData = -1 | newData = 0x0d) / CR break;ci = (char)newData; if(i 100)break; catch (IOException ex) return; i+;trystrWriter.write(c);strWriter.flush();buffer = strWriter.toString();strWriter.close(); retText = buffer;comReader.close();port.close();catch(Exception e)(setReadfinishFlg(true);

11、break;测试有关正确安装Java Communication API,并将自己的程序编译通过以后, 你能够按如下方法测试那个程序。如果你只有一台机器,你能够利用一条R S-232电缆将COM1和COM2连接起来,在COM1上运行自己的串口读写 程序,在COM2上运行第二章辅助工具中提到的串口调试工具。如果你有 两台机器的话,你能够利用一条RS-232电缆将两台机器的COM1(或者是C OM2)连接起来,在一端运行程序,另外一端运行串口调试工具。示例代码Serini rar至SEtrifll? mr辅助工具模拟串口软件名称:Virtual Serial Port Driver目 的:由于串口开发,需要硬件接口,以及串口链接线。使用本 软件能够在没有硬件串口接口和链接线的情形下,模拟出串口,同时能够 让模拟出的两个串口互相导通。串口调试工具软件名称:Serister目 的:测试的辅助工具,日文界面,能够同意RS232C传过来的数 据,同时以多种形式表现出来,如以十六进制显示,以文本方式显示等。 还能够编辑送信内容,进行送信等。软件名称:SuperCommTool超级串口调试器目 的:和上面的功能类似,那个是中文界面的。软件名称:串口调试(AccessPort)目的:更强大的串口检测调试工具。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号