怎么在Java中实现一个串口通信功能

  介绍

本篇文章给大家分享的是有关怎么在Java中实现一个串口通信功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

用Java实现串口通信(windows系统下),需要用到太阳提供的串口包javacomm20-win32.zip。其中要用到三个文件,配置如下:

1. comm.jar放置到JAVA_HOME/jre/lib/ext; win32com
2.。dll放置到JAVA_HOME/bin,
3. javax.comm.properties两个地方都要放
,,,JAVA jre/lib(也就是在文件夹下的jre)
,,JAVA_HOME/jre/lib

说一下我应用的环境。电子秤称重时,计算机通过串口给称重控制显示器发送一次命令“R”,控制显示器则发送一次重量数据给串口,计算机再读取将数据显示在网页上。这样就构成了一个实时称重系统。

读写串口的代码如下:

package  com.chengzhong.tools;   import  . io . *;   import  javax.comm.CommPortIdentifier;   import  javax.comm。*;      public  class  SerialBean   {   public  static  String  PortName;   public  static  CommPortIdentifier  portId;   public  static  SerialPort 串口;   public  static  OutputStream ;   public  static  InputStream ;//保存读数结果   public  static  String 结果=啊?   public  static  int  openSignal=1;      public  SerialBean (int  PortID)   {=,PortName “COM", + PortID;   }      public  int 初始化()   {   openSignal才能=1;   ,试一试   {才能   时间=portId 才能;CommPortIdentifier.getPortIdentifier (PortName);   ,试一试   {才能   serialPort 才能=,(串口)   portId.open才能(“Serial_Communication",, 2000);   ,,},catch  (PortInUseException  e)   {才能   ,,,如果(! SerialBean.portId.getCurrentOwner () .equals (“Serial_Communication"))   ,,,{   ,,,,,openSignal=2,,//该串口被其它程序占用   ,,,}else 如果(SerialBean.portId.getCurrentOwner () .equals (“Serial_Communication")) {   ,,,,,openSignal=1;   ,,,,,return  openSignal;   ,,,}   ,,return  openSignal;   ,,}//才能Use  InputStream 用拷贝read 得到,serial 港口,以及OutputStream//out 才能用write 用,serial 港口。   ,试一试   {才能=,拷贝才能serialPort.getInputStream ();   时间=out 才能;serialPort.getOutputStream ();   ,,},catch  (IOException  e)   {才能   ,,,,openSignal=3,,,//输入输出流错误   ,,,,return  openSignal;   ,,}//才能Initialize 从而communication  parameters 用9600年,8日,1,没有。   ,试一试   {才能   serialPort.setSerialPortParams才能(9600   SerialPort.DATABITS_8才能,   SerialPort.STOPBITS_1才能,   SerialPort.PARITY_NONE才能);   ,,},catch  (UnsupportedCommOperationException  e)   {才能   ,,,,openSignal=4,,,//参数不正确   ,,,,return  openSignal;   ,,}   ,,},catch  (NoSuchPortException  e)   {才能   ,,,,portId=零;   ,,,,openSignal=5,,//没有该串口   ,,,,return  openSignal;   ,,}//才能,when  successfully  open 从而serial 港口,create  a  new  serial 缓冲区,//才能,then  create  a  thread  that  consistently  accepts  incoming  signals 从//才能,从而serial 港口只Incoming  signals 断开连接;stored 拷贝,serial 缓冲区。//return  success 信息   return  openSignal;   }/* *   *   *,却;能够function  returns  a  string  with  a  certain  length 得到,传入的   *,消息。   *   *,@param  Length 从而Length  of 从而string 用be 返回。   *   */public  static  void  ReadPort ()   {   SerialBean.result=安拍堋?   int  c;   try  {   如果才能(!=null) {   ,,,,(in.available()在0)   ,,,{   ,,,,,c =, in.read ();   ,,,,,Character  d =, new 字符((char), c);   ,,,,,SerialBean.result=SerialBean.result.concat (d.toString ());   ,,,}   ,,}   },catch  (IOException  e), {//才能,TODO  Auto-generated  catch 块   e.printStackTrace才能();   }   }/* *   *   *,却;能够function  sends  a  message  through 从而serial 港口。   *   *,@param  Msg 从而string 用be 发送。   *   */public  static  void  WritePort (String 味精)   {   试一试   {   如果才能(!=null) {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Java中实现一个串口通信功能