java 获取温度_Java利用RXTX串口通信工具类获取DS18B20温度传感器的温度值

环境:Windows10,Eclipse4.5.2,JDK1.7

设备:DS18B20温度传感器(4线,485接口),USB转485接口转换器,笔记本电脑

注意点:RTU传输,使用的是字节,那么在程序中常会遇到传给设备的字节无法用byte表示,可能会溢出(例如校验值),所以也可以用int值传入,效果相同。

MyTwoWaySerialComm.java   [核心类]

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Scanner;

import gnu.io.CommPort;

import gnu.io.CommPortIdentifier;

import gnu.io.SerialPort;

/**

* 双向串行通信类

* @author 都颜汗

*

*/

public class MyTwoWaySerialComm {

/**

* 端口连接

* @param portName

* @throws Exception

*/

void connect(String portName) throws Exception {

// 通过端口名获取端口标志对象

CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);

// 检测当前端口是否已有所属(即检测是否被占用)

boolean isOwned = portIdentifier.isCurrentlyOwned();

// 若已经被占用

if(isOwned)

{

System.out.println("当前端口已经被占用");

}

// 若当前端口可用

else {

// 打开通信端口 (注意:这里使用应用名,和打开超时时间,单位ms),打开后获取通信端口对象

CommPort commPort = portIdentifier.open(this.getClass().getName(), 2000);

// 判断当前这个端口对象commPort是否是串行端口类的对象,注意:这里如果没有获取到commPort对象 一样会返回false

if(commPort instanceof SerialPort)

{

// 如果是串行端口(电脑上除了串行端口,还有并行

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值