java-串口通讯-连接硬件

串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。

上面说的,对于非专业人士来说,都是多余的话
一句话简单的说:串口通讯,一般情况下指windows电脑(或者一些安卓系统,单片机系统)和硬件进行数据交互的协议(方式)(硬件指,扫码抢,扫码盒子,刷卡机,继电器等一些硬件)。

这些硬件一般通过串口线,或者是USB线, 如果不带USB线也可以通过转换成USB线的方式,和电脑连接。

举例几个场景,一个windows 系统的柜式机器,控制开门关门。
一个windows机器的闸机,控制开门关门,或者开灯关灯
一个扫码枪,想要获取扫码数据并处理扫码获得的数据。等等各种情况
我这里主要是以 继电器 和 扫码器两种情况为例子。

场景一:windows电脑控制继电器的开关**

这种场景主要是,windows主动发送串口指令到硬件,控制硬件的状态
淘宝上买了一个继电器
在这里插入图片描述
话不多说,直接上串口通讯代码
POM 依赖包

<dependency>
		    <groupId>com.fazecast</groupId>
		    <artifactId>jSerialComm</artifactId>
		    <version>2.9.0</version>
		</dependency>
package com.hzsmk.serial.service;

import com.fazecast.jSerialComm.SerialPort;
import com.hzsmk.common.exception.BusinessException;
import com.hzsmk.common.util.RString;
 
public class SerialHander {
   
   
	
	private static final byte[] open = new byte[] {
   
   (byte) 0xA0,0x01,0x01,(byte) 0xA2};
	
	private static final byte[] close = new byte[] {
   
   (byte) 0xA0,0x01,0x00,(byte) 0xA1};
	
	//private static final byte[] query = new byte[] {
   
   (byte) 0xA0,0x01,0x05,(byte) 0xA6};
	
    private static SerialPort connectPort(String portDescription,String systemPortName) {
   
   
        // 列举所有可用的串口
        SerialPort[] commPorts = SerialPort.getCommPorts();
        for (SerialPort port : commPorts) {
   
   
        	String des = port.getPortDescription();
        	System.out.println(des);
        	if(RString.isNotBlank(portDescription) &&  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值