java实现串口_JAVA实现串口通信

【资料来源于网络,本文只是总结了一下自己学习的笔记。】

JAVA实现串口通信

一、配置JAVA下串口通信环境

1.下载Java Communication包:

2.解压缩javacomm20-win32.zip

3. 把javax.comm.properties,win32com.dll拷贝到你的jdk中,具体位置为:C:\Program Files\Java\jdk1.6.0_06\bin。然后配置windows系统环境变量,在path中加入C:\Program Files\Java\jdk1.6.0_06\bin;

4. 打开你的java工程,配置user library,并导入comm.jar包:

工具栏project->properties->Java Build Path->Libraries->addExternal JARs…->选择comm.jar包。

0818b9ca8b590ca3270a3433284dd417.png

二、源码如下:

gui.java算是一个框架;panel.java是面板,相当于前台;SerialCommunication.java是一个JavaBean,相当于后台。面板视图如下:

//gui.java

package gui;

import java.awt.*;

importjavax.swing.*;

public class gui

{

public static voidmain(String[] args)

{

JFrameframe=new JFrame("密谈");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().add(newpanel());

frame.pack();

frame.setVisible(true);

frame.setResizable(false);

}

}

//panel.java

package gui;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

public class panelextends JPanel

{

StringSB;

JTextAreashow;

JTextFieldtext;

JButtonsubmit,connect,stop;

SerialCommunicationport;

T

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以通过串口通信实现与外部设备的数据交互。下面是Java实现串口通信的基本步骤: 1. 导入扩展包和依赖库,例如RXTXcomm.jar和RXTXcomm.dll等。 2. 配置串口参数,例如波特率、数据位、停止位、校验位等。 3. 打开串口并获取输入输出流。 4. 通过输入输出流进行数据的读写操作。 5. 关闭串口。 下面是一个简单的Java串口通信示例代码: ```java import gnu.io.*; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class SerialPortTest implements SerialPortEventListener { private SerialPort serialPort; public void init() { try { // 获取系统中可用的串口列表 CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM1"); // 打开串口,并设置串口参数 serialPort = (SerialPort) portIdentifier.open("SerialPortTest", 2000); serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // 获取串口的输入输出流 InputStream inputStream = serialPort.getInputStream(); OutputStream outputStream = serialPort.getOutputStream(); // 监听串口数据 serialPort.addEventListener(this); serialPort.notifyOnDataAvailable(true); // 发送数据 outputStream.write("Hello, Serial Port!".getBytes()); } catch (NoSuchPortException | PortInUseException | UnsupportedCommOperationException | IOException | TooManyListenersException e) { e.printStackTrace(); } } @Override public void serialEvent(SerialPortEvent serialPortEvent) { if (serialPortEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { // 读取串口数据 InputStream inputStream = serialPort.getInputStream(); byte[] buffer = new byte[1024]; int len = -1; while ((len = inputStream.read(buffer)) != -1) { System.out.println(new String(buffer, 0, len)); } } catch (IOException e) { e.printStackTrace(); } } } public void close() { // 关闭串口 if (serialPort != null) { serialPort.removeEventListener(); serialPort.close(); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值