简单的Java串口通讯应答示例
java串口通讯第一次使用,找的资料都比较麻烦,一时没有理出头绪,自己在示例的基础上整理了一个简单的应答示例,比较简陋,但演示了java串口通讯的基本过程。
package com.garfield.comm; import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; import javax.comm.CommPortIdentifier;
import javax.comm.SerialPort; public class SimpleCommIO implements Runnable { static CommPortIdentifier portId;
static String cmdHand = "I\r\n";
static String cmdWeight = "WX\r\n";
static SerialPort serialPort;
static OutputStream outputStream;
static String comm="COM11"; InputStream inputStream;
Thread readThread; public void run() {
while (true) {
try {
byte[] readBuffer = new byte[200]; try {
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
System.out.print("收到数据:"+new String(readBuffer));
}
} catch (IOException e) {
e.printStackTrace();
}
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} public void initComm() {
try{
portId = CommPortIdentifier.getPortIdentifier(comm);
serialPort = (SerialPort) portId.open("SimpleCommIO",2000); outputStream = serialPort.getOutputStream();
inputStream = serialPort.getInputStream(); serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
}catch(Exception e){
e.printStackTrace();
} } public void writeComm(String cmd) {
try {
outputStream.write(cmd.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
} public static void main(String[] args) { SimpleCommIO reader = new SimpleCommIO();
reader.initComm();
Thread readThread = new Thread(reader);
readThread.start();
System.out.println("发出指令:"+cmdHand);
reader.writeComm(cmdHand); //暂停一会儿
try {
Thread.sleep ( 2000 ) ;
} catch (InterruptedException ie)
{ }
System.out.println("发出指令:"+cmdWeight);
reader.writeComm(cmdWeight);
} }
另注配置:
将javacomm20-win32 .zip下载的文件解压缩后,在\javacomm20-win32\commapi目录下有必需的三个文件:
comm.jar,javax.comm. properties和win32comm.dll。
将文件comm.jar拷贝到%JAVA_HOME%\jre\lib\ext;
文件 javax.comm. properties拷贝到%JAVA_HOME%\jre\lib;
文件win32comm.dll拷贝到%JAVA_HOME%\bin。
注意%JAVA_HOME%是jdk的路径,而非jre。
简单的Java串口通讯应答示例的更多相关文章
- 一款简单实用的串口通讯框架(SerialIo)
前言 大龄程序员失业状态,前几天面试了一家与医疗设备为主的公司并录取:因该单位涉及串口通讯方面技术,自己曾做过通讯相关的一些项目,涉及Socket的较多,也使用SuperSocket做过一些项目,入职 ...
- java串口通讯环境配置
用java实现串口通信(windows系统下),配置如下: 1.comm.jar放置到 JAVA_HOME/jre/lib/ext;2.win32com.dll放置到 JAVA_HOME/bin;3. ...
- java web下串口通讯
最近在做java串口通讯,主要是用个人电脑通过串口从RS485读取数据,并通过crc循环冗余校验,把接收正确的数据解析,插入数据库mysql,并用SSH技术把数据库数据以表格以及图表形式显示 ...
- Java利用Rxtx进行串口通讯
最近在做传感器数据采集的工作,底层是基于Zigbee的无线传感网络,所有数据采集到Zigbee协调器上然后通知上位机数据采集完成,上位机通过USB转串口去读取数据就可以了.那么问题来了,如何进行串口通 ...
- C#串口通讯
本文提供一个用C#实现串口通讯实例,亲自编写,亲测可用! 开发环境:VS2008+.net FrameWork3.5(实际上2.0应该也可以) 第一步 创建一个WinForm窗体,拉入一些界面元素 重 ...
- 【单片机入门】(三)应用层软件开发的单片机学习之路-----UART串口通讯和c#交互
引言 在第一章博客中,我们讲了Arduino对Esp32的一个环境配置,以及了解到了常用的一个总线通讯协议,其中有SPI,IIC,UART等,今天我为大家带来UART串口通讯和c#串口进行通讯的一个案 ...
- C#串口通讯概念以及简单实现
最近在研究串口通讯,其中有几个比较重要的概念,RS-232这种适配于上位机和PC端进行连接,RS-232只限于PC串口和设备间点对点的通信.它很简单的就可以进行连接,由于串口通讯是异步的,也就是说你可 ...
- TCP UDP Socket 即时通讯 API 示例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- STM32F10x 学习笔记5(USART实现串口通讯 1)
STM32F10x 系列单片机中都包含了USART 模块,所谓USART,就是通用同步异步收发器.通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间 ...
随机推荐
- AS 阿里巴巴Java开发规约 CheckStyle-IDEA
Alibaba Java Coding Guidelines 简介 github地址:https://github.com/alibaba/p3c 官方文档 阿里巴巴Java开发手册(纪念版) ...
- BUG的严重级别分类 BUG状态标准
英文参考 BUG的严重级别分类 Severity This field describes the impact of a bug. Blocker Blocks development and/or ...
- 不能从const char *转换为LPCWSTR --VS经常碰到
不能从const char *转换为LPCWSTR 在VC 6.0中编译成功的项目在VS2005 vs2005.vs2008.vs2010中常会出现类型错误. 经常出现的错误是:不能从const ch ...
- GDB 程序调试简单实践
用了好久的GCC/G++ 却一直都没用过GDB调试过程序,有时程序不是非常大,一般有错,直接看编译器编译结果就几乎相同知道错在哪儿了,或者使用codeblocks单步调试,甚至回到windows以下调 ...
- CSDN日报20170226——《你离心想事成仅仅差一个计划》
[程序人生] 你离心想事成仅仅差一个计划 作者:安晓辉 从目标怎样导出工作计划.我们会以"出版一本小说"为例来解说计划的形成过程. 在開始之前.我们先来说明一个概念:目标的两种类型 ...
- 这次要好好吐槽下idea呢还是SpringMVC ?
特么的!(我为什么要骂脏话,因为这个问题弱智+不能理解) 相信很多人遇到过 org.springframework.web.servlet.PageNotFound - No mapping foun ...
- [Git] Squash all of my commits into a single one and merge into master
Often you have your feature branch you’ve been working on and once it’s ready, you just want it to m ...
- (算法)等概率选出m个整数
题目: 从大小为n的整数数组A中随机选出m个整数,要求每个元素被选中的概率相同. 思路: n选m,等概率情况下,每个数被选中的概率为m/n. 方法: 初始化:从A中选择前m个元素作为初始数组: 随机选 ...
- Python操作Mysql实例代码教程在线版(查询手册)_python
实例1.取得MYSQL的版本 在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 复制代码 代码如下: # -*- coding ...
- spring boot与spring mvc的区别是什么?
Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等.但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面 ...