【串口】Java中串口通讯的基本用例

Java串口通信入门教程_commportidentifier 2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。[外链图片转存中…(img-99QcjY06-1714337738254)][外链图片转存中…(img-5bGMCFW8-1714337738255)]本文已被。 阅读详情

1.获取串口通讯端口

点击,【此电脑】-【管理】-【设备管理器】-【端口】

查看需要建立通讯的端口名称

2.项目引入RXTX依赖包

依赖包、串口调试工具、驱动地址:

链接:https://pan.baidu.com/s/1Cigd60l1T3UjLLHRp0TpiQ?pwd=rtxp 
提取码:rtxp

3.示例代码

public class SerialCommunicationExample {
    public static void main(String[] args) {
        try {
            // 获取串口通信端口
            CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM5");
            // 打开串口
            CommPort commPort = portIdentifier.open("SerialCommunicationExample", 8089);
            // 判断通信端口类型
            if (commPort instanceof SerialPort) {
                SerialPort serialPort = (SerialPort) commPort;
                // 配置串口参数
                serialPort.setSerialPortParams(115200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
                // 获取输入流和输出流
                InputStream inputStream = serialPort.getInputStream();
                OutputStream outputStream = serialPort.getOutputStream();
                // 创建线程读取串口数据
                Thread readThread = new Thread(() -> {
                    try {
                        while (true) {
//                            int data = inputStream.read();
//                            System.out.print(data);

                            int a = 0;
                            while ((a = inputStream.read()) != -1) {
                                String data = String.format("%04x%n", a);
                                System.out.print("原始int:" + a + "转换后值:" + data);
                            }
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                });
                // 启动读取线程
                readThread.start();
                // 写入串口数据
                byte[] array = new byte[5];
                array[0] = (byte) 0xD1;
                array[1] = (byte) 0xF5;
                array[2] = (byte) 0x01;
                array[3] = (byte) 0x01;
                array[4] = (byte) 0x24;
//                outputStream.write("D1 F5 01 01 24".getBytes());
                outputStream.write(array);
                System.out.println("写入完毕!");
                // 关闭输入流、输出流和串口
//                inputStream.close();
                outputStream.close();
//                serialPort.close();
            } else {
                System.out.println("Error: Only serial ports are handled by this example.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

4.查验流数据是否写入到端口所在硬件设备

Java 串口通讯 Demo 一开始我遵循了协议往对应的串口发,却没有办法收到称重板给的返回数据,经过排查是我发送的方法错误//要发送的字符串 byte [ ] bytes = writeData . getBytes();//将字符串转换为字节数组 serialPort . writeBytes(bytes , bytes . length);但实际上不能这样,这里得转换一下,相当于把字符串表示的16进制数值转化为一个字节数组(有点绕,相当于字符串的内容是16进制的数值,但是用的是字符串表示),比如可以这样。 阅读详情

相关推荐

java RS232串口通讯 windows(附源码)

操作系统:windows10 演示工具:eclipse 原文提供源码与相关工具下载准备开发环境 在 eclipse 中创建新的 Java 项目,命名为 JavaSerial。 下载RXTX库 在你刚刚创建的 JavaSerial 项目的根目录下,创建一个文件夹,命名为 lib, 下载 RXTX,将压缩包解压,然后将 RXTXcomm.jar, rxtxSerial.dll and rxtxPar...

知行合一 3968

调用CommPortIdentifier.getPortIdentifiers,打包后有时候获取不到串口的问题

使用comm.jar包获取串口信息,程序运行时正常,打包后经常出现找不到串口,调查后发现,是有时候没有初始化本地comm驱动,将代码修改如下:Enumeration portList = javax.comm.CommPortIdentifier.getPortIdentifiers(); if (portList.hasMoreElements()) { System.out.p...

xhbe的博客 4760

安卓设备通过USB串口与STM32单片机通讯之二

(二) APP的JAVA代码部分(使用Android Studio 4.1环境开发) 本APP(USB串口调试器)在开发中引入了mike wakerly (opensource@hoho.com)编写的USB串口开源驱动包.具体的开源项目可查看: https://github.com/mik3y/usb-serial-for-android。得益于这个工作流畅的驱动包,本APP在实际工作的使用中稳定可靠,在此我谨向这位无私的开源者致谢。 以下是这个driver驱动包在项目中的具体位置,它和我的唯一的主活动

JGB联合商务组的博客 4142

Java串口通信入门教程

串口通信是一种用于在计算机和外部设备之间进行数据交换的通信方式。在许多应用场景中,如物联网、自动化控制等领域,串口通信被广泛应用。本教程将带领您入门Java串口通信,介绍串口通信的基本原理和Java中的串口通信库,并提供一个简单的示例来演示如何在Java中进行串口通信。本教程介绍了Java串口通信的基本原理,并演示了如何使用rxtx库在Java中进行串口通信。我们学习了如何查找可用的串口、设置串口参数、进行串口通信,并最后关闭串口。希望本教程对您入门Java串口通信有所帮助。

hitpter的专栏 1085

Android串口通讯RS485发送和接收数据

最近有个需求是这样子的,客户购买了我们这边的室内可视分机, 客户DIY自己的软件,我们这边需要提供RS485串口通讯demo演示以及sdk集成。 大致需求是这样子,话不多说,往下看。 一、SDK部分 1、拷贝libxxx.so文件到armeabi-v7a目录下 拷贝.so库(用来进行485串口通讯的)到,libs/armeabi-v7a目录下,.so文件名称根据自己项目具体的功能模块命名名称。 2、删除res目录下所有的资源文件 3、build.gradle(Module:serialport485)

discode的博客 2万+

电子称串口通讯实现指南

本文还有配套的精品资源,点击获取 简介:串口通讯是IT行业中的基础通信技术,尤其在电子称与计算机等设备的数据交互中占据重要地位。本文深入分析了电子称串口通讯的工作原理和实现方法,包括串口硬件介绍、数据传输标准、串口通信参数配置以及使用C#等编程语言进行编程实现的实例。学习这些知识对于实现电子设备数据集成和控制有着关键作用。 1. 串口通讯概述 1.1 串口通...

weixin_33812391的博客 1817

java串口通信

java串口通信API说明 java串口通信2008/09/22 20:24java串口通信API说明java串口通信     Java提供了 CommunicationAPI(包含于javax.comm包中)用于通过与机器无关的方式,控制各种外部设备。Communications API,是标准的Java的扩展部分,它在JavaAPI中是没有附带的。因此,必须先在

Seven的专栏 1万+

Java实现USB串口通讯与Modbus协议应用指南

RXTX库是Java串口通讯库,它允许Java程序通过串口与外部设备进行数据交换。RXTX库是一个跨平台的解决方案,支持Windows、Linux和Mac OS X等操作系统。Modbus协议是一种广泛应用于工业环境的通信协议,由Modicon公司于1979年开发。它的特点是简单、开放、可靠,并且具有良好的互操作性,因此在自动化设备中得到广泛应用,尤其是在制造、楼宇自动化、电力、水处理等行业。

weixin_36296444的博客 1123

JAVA 串口编程

一、环境配置 (1)解压复制文件 解压javacomm20-win32.zip 把win32com.dll复制到/jre/bin 和/bin目录下 把comm.jar复制到/jre/lib/ext和/lib目录下 把javax.comm.properties复制到/jre/lib和/lib目录下 (2)设置环境变量 CLASSPATH=/jre /lib/ext /comm.jar;

RubyBoss的专栏 1万+

Labview及NI-USRP驱动安装教程

软件下载 安装使用的LabVIEW2018及NI-USRP驱动程序已上传,下载地址: 天翼云盘链接 (访问码:oc33) 百度网盘链接 (提取码:88mi) (注:天翼云盘下载不限速) LabVIEW2018安装步骤 右键软件压缩包选择解压至LabVIEW2018 选中文件,鼠标右击选择以管理员身份打开2018LV-WinChn.exe文件。 点击确定。 点击Unzip解压。 点击确定。 点击下一步。 填写任意信息后,点击下一步。 点击下一步。 点击浏览更改安装路径建议安装到除C盘以

dadapongi6的博客 2万+

EV1527 vs HS1527:固定码芯片的STM32解码避坑指南

本文深入解析EV1527与HS1527固定码芯片的技术差异,提供基于STM32的完整解码方案与稳定性优化策略。通过硬件接口配置、状态机实现及示波器诊断,解决工业遥控、安防报警等场景中的解码难题,特别针对时序差异和干扰问题给出实用解决方案。

o0p1q2r3的博客 334

Android串口通讯SerialPort(使用篇)

1.什么是串口? 在不会使用串口通讯之前,暂且可以把它理解为“一个可通讯的口”;使用篇不深入探讨理论及原理。 2.添加依赖 1.)在 module 中的 build.gradle 中的 dependencies 中添加以下依赖: dependencies { //串口 implementation 'com.github.licheedev:Android-SerialPort-API:2.0.0' } 2.)低版本的 gradle在Project 中的 build....

qq_42111674的博客 6万+

一分钟学会MATLAB-数据清洗(含完整代码)

数据清洗是数据分析过程中的一个重要步骤,目的是提高数据的质量,以便进行更有效的分析。% 删除超出阈值的行。% 用线性插值填充缺失值。% 删除包含缺失值的行。% 找到缺失值的位置。% 可视化数据,识别异常值。缺失值是数据清洗中常见的问题。通过以上步骤,你可以有效地清洗数据,使其准备好进行后续的分析和建模。

2402_87132195的博客 3317

c#Java串口通讯

串口通讯 文章目录串口通讯一、Java串口通讯助手二、C#串口通讯 一、Java串口通讯助手 1、下载64位rxtx for java 链接:http://fizzed.com/oss/rxtx-for-java 2、解压安装所下载的文件 复制 RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext 复制 rxtxSerial.dll ---> <JAVA_HOME>\jre\bin 复制 rxtxParallel.dll ---> &l

汪随安的博客 2954

RK3576 PCIE接口调试:基于RTL8111HS的网卡驱动移植

检查项方法电源电压复位时序检查设备树 reset-gpios链路速率设备识别lspci -vvv驱动加载。

小灰灰的博客 739

学Simulink--人形机器人控制场景实例:基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真

matlab编辑% 连杆长度 (m)% 躯干(髋到CoM)% 大腿% 小腿% 质量 (kg)% 转动惯量(绕质心,简化为杆)matlab编辑% 躯干CoM(假设在髋上方L_body/2处)% 左大腿CoM% 左小腿CoM% (右腿类似,略)本文完成了基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真,实现了:✅ 定义7-DOF平面人形结构✅ 使用Symbolic Math Toolbox自动推导动力学方程✅ 生成。

amy_mhd的博客 398

使用Java进行串口SerialPort通讯

1.准备工作 在进行串口连接通讯前,必须保证你当前操作电脑上有可用且闲置的串口。因为一般的电脑上只有一个或者两个串口,如COM1或COM2,但大多数情况下,这些串口可能会被其他的程序或者应用所占用,所以此时我们可以借助工具,在我们的电脑上建立虚拟串口。 先下载一个叫Virtual Serial Port的软件,通过这个软件可以创建新的虚拟串口,如下图所示: 通过图中的添加串口即可进行新虚拟串口的创建,并且一般都是成对创建。 有了虚拟串口之后,为了方便测试新...

liuyuinsdu的专栏 7009

100个Python实战项目(七)实现摩斯密码翻译器

作者主页:海拥 作者简介:优快云全栈领域优质创作者、HDZ核心组成员、蝉联C站周榜前十 粉丝福利:往期获奖记录 每周送6~9本书,不定期送各种小礼品(搪瓷杯、抱枕、鼠标垫、马克杯等) 摩斯密码是一种将文本信息作为一系列通断的音调、灯光或咔嗒声传输的方法,无需特殊设备,熟记的小伙伴即可直接翻译。它以电报发明者Samuel F. B. Morse的名字命名。 算法 算法非常简单。英语中的每个字符都被一系列“点”和“破折号”代替,或者有时只是单数的“点”或“

努力是为了站在万人之中,成为别人的光 1万+

java串口通讯,可实现javaWeb页面同时控制多个串口,有demo

java串口通讯,可实现javaWeb页面控制串口,调用串口数据,发送串口指令 前言 随着UI越来越强大,外观越来越精美酷炫,无论是做软件的还是客户,都越来越喜欢web制作的页面。今年有个项目,客户指定要用Web做工控系统,让工控系统不再死板枯燥,要美观大方跟上时代潮流。本来计划是让.net工程师给我们写个控件了事,我们也懒得去研究什么串口通讯、485协议啥的,但因为一系列原因与.net工程师解除...

weixin_39442506的博客 4661

基于STM32、HAL库的 CH9102X USB转UART收发器 驱动程序设计

/ 或 UART_HWCONTROL_RTS_CTS。// 其他函数实现类似,使用HAL_UART_Transmit_IT, HAL_UART_Receive_IT等。UART_TXD <---> USARTx_RX (STM32接收)UART_RXD <---> USARTx_TX (STM32发送)* @param huart: UART句柄指针。* @param huart: UART句柄指针。* @param huart: UART句柄指针。* @param huart: UART句柄指针。

corlin6688的博客 506

052、联发科Imagiq HyperEngine架构适配:天玑9000/9200的ISP多核并行调度与Tuning Toolkit调优案例

摘要: 项目组在适配联发科天玑9200的Imagiq 890 ISP架构时,遇到多摄预览功耗过高、帧率不稳等问题。通过分析多核调度机制,调整辅核QoS通道、优化AI-ISP协同模式(采用FREERUN+运动补偿),并利用Tuning Toolkit的Pipeline Viewer动态分配负载,最终降低功耗30mA、提升画质。关键经验包括:避免多核带宽冲突、合理配置动态时钟策略,以及统一校准参数版本管理。天玑9000/9200的HyperEngine架构需优先理解多核协同逻辑,再针对性调优,否则易引发场景兼容

zzfmlxs的博客 38

java实现 串口通讯

java 串口通讯

somdip的博客 8982

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java实现串口通讯

在send方法中,发送数据后要等待1s的原因是,需要监听串口的应答数据,不等待应答数据就读取不到,如果是只考虑发送,不考虑应答的话可以不用等待。其他的jar包或多或少还有点坑,我这暂不推荐,有兴趣的同学可以自行尝试,使用方法大致相同。(读取温湿度传感器)

为者常成,行者常至 4418

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java串口通讯 基于Java的串口通讯demo

效果图 1.导入RXTXcomm.jar 链接:https://pan.baidu.com/s/1US0Re7wkzsp_v-f4M-Vhag 提取码:bqv9 找到正在用的jdk 复制到该文件夹 2.代码 package com.ruoyi.web.controller.sports; import com.ruoyi.common.config.ServerConfig; import org.slf4j.Logger; import org.slf4...

若星汉灿烂 2163

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android 串口通讯 java

Android串口通讯Java实现指南 1. 整体流程 下面是实现Android串口通讯的整体流程: 步骤 操作 1 导入串口通讯库 2 打开串口 3 读取数据 4 写入数据 5 关闭串口 2. 操作步骤及代码示例 2.1 导入串口通讯库 在 build.gradle 文件中添加串口通讯...

weixin_40621013的博客 259

Java使用RXTX进行串口SerialPort通讯

RXTX简介 RXTX是一个提供串口和并口通信的开源java类库,由该项目发布的文件均遵循LGPL协议。 RXTX项目提供了Windows,Linux,Mac os X,Solaris操作系统下的兼容javax.comm串口通讯包API的实现,为其他开发人员在此类系统下开发串口应用提供了相当的方便。 RXTX的使用上与sun提供的comm.jar基本相同,编程时最明显的不同是要包含的包名由javax.comm.改成了gnu.io. RxtxAPI 的核心是抽象的CommPort类(用于描述一个被底层系统

好记性不如烂笔头 1729
下一篇: 银河麒麟Linux系统
SQL_sqq
博客等级 码龄4年 44粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值