嵌入式系统或传感器网络的很多应用和测试都需要通过PC机与嵌入式设备或传感器节点进行通信。其中,最常用的接口就是RS-232串口和USB接口(并口)。鉴于USB接口的复杂性以及不需要很大的数据传输量,现模块中使用了串口进行通讯。
    其中SUN的CommAPI分别提供了对常用的RS232串行端口和IEEE1284并行端口通讯的支持。RS-232-C(又称EIA RS-232-C,以下简称RS232)是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它是一个全双工的通讯协议,可以同时进行数据接收和发送的工作。
    目前,常见的Java串口包有SUN在1998年发布的串口通信API:comm2.0.jar(Windows下)、comm3.0.jar(Linux/Solaris);IBM的串口通信API以及一个开源的实现。现模块中使用了comm3.0.jar(Linux/Solaris)串口包进行串口通讯。
    首先需要打开串口,如下所示:

CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(“串口名”);
try {
SerialPort  sPort = (SerialPort) portId.open("串口所有者名称", 超时等待时间);
} catch (PortInUseException e) {//如果端口被占用就抛出这个异常
throw new SerialConnectionException(e.getMessage());
}

然后使用InputStream从串口读取数据,使用OutputStream向串口写入数据,如下所示:

try {
    in = serialPort.getInputStream();
    out = serialPort.getOutputStream();
} catch (IOException e) {
    return InitFail;
}

最后设置初始化通讯参数,分别为波特率、输入/输出流控制、数据位数、停止位和齐偶校验。这里设置为9600, N, 8, 1:

try {
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {
    return InitFail;
}

经过以上的初始化工作就可以通过调用in. read()以及out.write(char)进行数据读取及发送工作了。该模块同样通过调用out.write(char)向外网设备发送AT命令及PDU数据包,通过in.read()读取从外网设备返回的数据。

JAVA 通过串口发送命令相关推荐

  1. java 怎么向串口发送指令_idea ssm项目java程序使用十六进制rxtx包向串口发送指令的方法...

    1.前提 idea ssm项目环境要配好,这里就不多赘述了,自己配好 2.下载配置rxtx包 官网下载:http://rxtx.qbang.org/wiki/index.php/Download 根据 ...

  2. Java使用短信猫发信息(向串口发送AT指令)

    使用Java发送短信息的方式有两种: 1>使用第三方平台的http请求进行发送,优点是接口简单,使用方便,发送的效率高,多条可以同时发送,缺点是短信平台,三大运营商不提供接口,都是第三方平台,但 ...

  3. java串口发送十六进制数,本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下1.介绍使用Java实现的串口通信程序,支持十六进制数据的发送与接收。 源码:...

    本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下 1.介绍 使用Java实现的串口通信程序,支持十六进制数据的发送与接收. 源码:SerialPortDemo 效果图如下: ...

  4. java 采用串口通信实现LED屏发送数据中文乱码问题

    java 采用串口通信实现LED屏发送数据中文乱码问题 1.定义:Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(1024)) ...

  5. java串口发送16进制_串口发送数据——字符串发送与十六进制发送的区别

    在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示.我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照 ...

  6. Java实现串口通信的小样例

    用Java实现串口通信(windows系统下),须要用到sun提供的串口包 javacomm20-win32.zip.当中要用到三个文件,配置例如以下: 1.comm.jar放置到 JAVA_HOME ...

  7. java读写串口数据

    本博文参考自https://www.cnblogs.com/Dreamer-1/p/5523046.html 最近接触到了串口及其读写,在此记录java进行串口读写的过程. 1.导入串口支持包 需要下 ...

  8. Java实现串口通信的小例子

    用Java实现串口通信(windows系统下),需要用到sun提供的串口包 javacomm20-win32.zip.其中要用到三个文件,配置如下: 1.comm.jar放置到 JAVA_HOME/j ...

  9. 基于java的串口通信

    文章目录 前言 一.RXTX是什么? 二.环境搭建 引入库 三.代码实现 SerialPortManager类 Tools类 重要代码解析 读取数据 写数据 写EPC号 询查单张标签 CRC校验 测试 ...

最新文章

  1. c#垂直投影法_投影学
  2. MySQL教程(三)—— MySQL的安装与配置
  3. Avalonia跨平台入门第八篇之控件的拖放
  4. 半圆和圆锥在一起会产生什么神奇的反应?
  5. c语言的一段程序,C语言第一个程序(入门)
  6. Java虚拟机-垃圾回收简介
  7. Wodpress模板
  8. tar包在linux下 java安装
  9. 我的博客搬家工具开发
  10. bbsmax mysql_mysql 语句case when
  11. 单片机 一键开关机 软件结合
  12. 织梦域名后缀.html,织梦cms建站教程之首页域名后缀index.html去除的方法
  13. ODC(Orthogonal Defect Classification)简介
  14. stm32cubeide烧写程序_初学STM32CubeIDE
  15. ppt文字磨砂玻璃效果制作教程
  16. KVell: the Design and Implementation of a Fast Persistent Key-Value Store
  17. 2565: 最长双回文串
  18. 水果店圈子:水果店水果都去哪进货,水果店进货怎么找货源
  19. React中createRef()和useRef()的使用方法
  20. 【图像隐藏】基于DCT算法实现数字水印嵌入+检测+攻击含Matlab源码

热门文章

  1. 关于项目管理的一点体会
  2. Struts 2 Spring Hibernate三大框架的执行流程以及原理
  3. openLayer加载KML,画出省及省下的边界区域,并设置样式、各种标注及提示信息
  4. 为了找工作的学习计划
  5. 诗与远方:无题(三十五)- 曾经写给妹子的一首诗
  6. VUE自学日志01-MVC和MVVM
  7. 校验用户登录手机端还是PC端,是否微信浏览器打开
  8. mysql最小费用最大流问题_图论-网络流之最小费用最大流问题
  9. (非)对称加密算法在https中的应用(加密过程以及CA颁发、验证)
  10. c ajax传递多个参数,c# – 使用jQuery AJAX将字符串数组传递给具有可变参数数量的webmethod...