知识大全 通过JAVA与串口(RS232)通信实例

Posted 通信

篇首语:贵在坚持,难在坚持,成在坚持。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 通过JAVA与串口(RS232)通信实例相关的知识,希望对你有一定的参考价值。

通过JAVA与串口(RS232)通信实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  最近了解到的需求是需要需激光打刻机进行(RS )串口通信 这里使用的是RXTX开源包实现的

  之前并没有用java做过串口通信 而且这方面资料不是很多

  项目实际应用中可能会采用VB开发(这个我就不会了)

  只不过用java尝试一下 记个笔记 希望可以对相关开发用些帮助

  下面是实现代码

  Java代码

  package test;

  import java io IOException;

  import java io InputStream;

  import java io InputStreamReader;

  import java io OutputStream;

  import java util Date;

  import java util Enumeration;

  import java util TooManyListenersException;

  import gnu io CommPortIdentifier;

  import gnu io PortInUseException;

  import gnu io SerialPort;

  import gnu io SerialPortEvent;

  import gnu io SerialPortEventListener;

  import gnu io UnsupportedCommOperationException;

  public class CommUtil implements SerialPortEventListener

  InputStream inputStream; // 从串口来的输入流

  OutputStream outputStream;// 向串口输出的流

  SerialPort serialPort; // 串口的引用

  CommPortIdentifier portId;

  public CommUtil(Enumeration portList String name)

  while (portList hasMoreElements())

  CommPortIdentifier temp = (CommPortIdentifier) portList nextElement();

  if (temp getPortType() == CommPortIdentifier PORT_SERIAL) // 判断如果端口类型是串口

  if (temp getName() equals(name)) // 判断如果端口已经启动就连接

  portId = temp;

  

  

  

  try

  serialPort = (SerialPort) portId open( My +name );

   catch (PortInUseException e)

  

  try

  inputStream = serialPort getInputStream();

  outputStream = serialPort getOutputStream();

   catch (IOException e)

  

  try

  serialPort addEventListener(this); // 给当前串口天加一个监听器

   catch (TooManyListenersException e)

  

  serialPort notifyOnDataAvailable(true); // 当有数据时通知

  try

  serialPort setSerialPortParams( SerialPort DATABITS_ // 设置串口读写参数

  SerialPort STOPBITS_ SerialPort PARITY_NONE);

   catch (UnsupportedCommOperationException e)

  

  

  public void serialEvent(SerialPortEvent event)

  switch (event getEventType())

  case SerialPortEvent BI:

  case SerialPortEvent OE:

  case SerialPortEvent FE:

  case SerialPortEvent PE:

  case SerialPortEvent CD:

  case SerialPortEvent CTS:

  case SerialPortEvent DSR:

  case SerialPortEvent RI:

  case SerialPortEvent OUTPUT_BUFFER_EMPTY:

  break;

  case SerialPortEvent DATA_AVAILABLE:// 当有可用数据时读取数据 并且给串口返回数据

  byte[] readBuffer = new byte[ ];

  try

  while (inputStream available() > )

  System out println(inputStream available());

  int numBytes = inputStream read(readBuffer);

  System out println(numBytes);

  

  System out println(new String(readBuffer) trim());

   catch (IOException e)

  e printStackTrace();

  

  break;

  

  

  public void send(String content)

  try

  outputStream write(content getBytes());

   catch (IOException e)

  e printStackTrace();

  

  

  public void ClosePort()

  if (serialPort != null)

  serialPort close();

  

  

  

  测试

  Java代码

  package test;

  import gnu io CommPortIdentifier;

  import java util Enumeration;

  public class Test

  public static void main(String[] args) throws InterruptedException

  Enumeration portList = CommPortIdentifier getPortIdentifiers(); //得到当前连接上的端口

  CommUtil m = new CommUtil(portList );

  int i = ;

  while(i< )

  

  Thread sleep( );

  m send( hello );

  i++;

  

  m ClosePort();

  

cha138/Article/program/Java/hx/201311/25965

相关参考

知识大全 Java串口通信总结

Java串口通信总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近在研究一个东西要用到串口

知识大全 Java串口通信简介

编程技巧:Java串口通信简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  嵌入式系统或传感器

知识大全 rs-232汇流排在实际应用中有几种接线方式,它们都应用在哪些场合

rs-232汇流排在实际应用中有几种接线方式,它们都应用在哪些场合rs-232汇流排?一般说rs-485汇流排232是一拖一的,485可以一拖多一、什么是RS-232介面?(1)RS-232的历史和作

知识大全 单片机串口通信的波特率有什么用

单片机串口通信的波特率有什么用两个串口之间通讯的速率,两个串口的波特率设置成一样才能互相发送和接收数据单片机串口通信的波特率如何计算教材上都有计算公式的,还可以用波特率计算软件来计算STC单片机下载入

知识大全 51单片机串口通信定时器初值怎么计算

51单片机串口通信定时器初值怎么计算?公式和计算原理是什么?串口通信方式1和方式3,要用T1来控制波特率。T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:T1初值=256-f

知识大全 89C51系列单片机串口通信的四种方式极其特点

89C51系列单片机串口通信的四种方式极其特点  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!89C5

知识大全 利用Java实现串口全双工通讯

利用Java实现串口全双工通讯  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个嵌入式系统通常

知识大全 各位电子,通信高手,我想问一下单片机串口设置为什么要设置成波特率一致啊

各位电子,通信高手,我想问一下单片机串口设置为什么要设置成波特率一致啊?波特率是每秒传递信息的bit数这就像传球,我抛出一个球,你就要接住一个球。如果我两速度不一样,我每抛出两个球,你只来得及接住一个

知识大全 Java与JavaScript的通信lixiaolong3456

Java与JavaScript的通信lixiaolong3456  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 java间的线程通信

  不同线程间进行通信通常有两种简单方法  方法一通过访问共享变量的方式(注需要处理同步问题)  方法二通过管道流  其中方法一有两种实现方法即  方法一a)通过内部类实现线程的共享变量  代码如下