本人在近期的开发工作中遇到向串口发送设备控制指令的需求,遂对串口编程进行了略微深入的钻研,在此对自己的一些心得和经验进行总结,以供大家参考与交流。 #串口介绍 # 串口全称为串行接口,一般指COM接口,是采用串行通信方式的扩展接口。其特点是数据位的传送按位顺序进行,最少只需一根传输线即可完成,成本低但传送速度慢。由于串口(COM)不支持热插拔及传输速率较低,目前部分新主板和大部分便携电脑已取消该接口。现在串口多用于工业控制和测量设备以及部分通信设备中。 根据美国电子工业协会(EIA: Electronic Industry Association)制定的标准,串口可以分为RS-232、RS-422以及RS-485等种类,其中以RS-232类型的接口最为典型和常见,本文所使用的是RS-232类型的9针串口(RS-232类型有25接口,但是现在几乎不再使用)。如图 1所示,是RS-232类型9针串口的实物示意图。RS-232类型9针串口每一个引脚的作用说明如图 2所示。
在嵌入式项目开发中,无论是单片机项目、嵌入式Linux项目、FPGA项目,上位机始终是一个很重要的部分,主要用于:
本篇文章整理了串口的初始化的一些文档性的内容,如果看完和我一样比较晕,那么下篇文章配合代码看也行。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154648.html原文链接:https://javaforall.cn
本文主要介绍了Java串口通信技术探究,重点分析了RXTX库单例测试以及串口工具的使用。通过实例演示了如何使用SerialPortTool类进行串口操作,包括打开串口、关闭串口、发送数据和接收数据等基本功能。同时,对在运行过程中可能出现的错误进行了分析,并提供了一些解决办法。
前段时间因为工作需要研究了一下android的串口通信,网上有很多讲串口通信的文章,我在做的时候也参考了很多文章,现在就将我学习过程中的一些心得分享给大家,由于串口开发涉及到jni,所以开发环境需要支持ndk开发,如果未配置ndk配置的朋友,或者对jni不熟悉的朋友,请查看上一篇文章,android 串口开发第一篇:搭建ndk开发环境以及第一个jni调用程序 ,串口通信和java操作io类似,先打开串口,然后向串口发送或者读取数据,最后关闭串口,所以基本思路就是:
在现代嵌入式系统中,串口通信是一种非常常见的通信方式。通过串口,设备之间可以传输各种类型和格式的信息。Java作为一种流行的编程语言,提供了丰富的串口通信库和工具。本文将介绍一个常用的Java串口通信库——RXTX,探讨其原理、特点、应用场景以及兼容性等问题。
RXTX 的下载可以到官网或者Fizzed,官网发现并没有64位的支持,但是在Fizzed中找到的2.2版的64,32的windows和Linux版本http://fizzed.com/oss/rxtx-for-java 1.windows下的串口调试 将rxtxParallel.dll、rxtxSerial.dll拷贝到%JAVA_HOME%安装目录bin目录下 将rxtxParallel.dll、rxtxSerial.dll拷贝到%JAVA_HOME%安装目录jre/bin目录下(eclipse开发时调用,减少麻烦) 将RXTXcomm.jar 拷贝到%JAVA_HOME%\jre\lib\ext\RXTXcomm.jar(开发时直接导入) 2.Linux下的串口调试 首先确定Linux处理器型号,对应选择RXTX的Linux版本。 如处理器为i386,则将Linux i686版本中的两个os文件复制到系统%JAVA_HOME%/jre/lib/i386(即JDK目录中的系统文件夹) 将RXTXcomm.jar拷贝到%JAVA_HOME%/jre/lib/ext文件夹 代码不变,即可运行使用。 在实际开发中,由于使用树莓派测试,树莓派使用Raspbian系统(使用uname -a命令可查看系统内核信息) Linux raspberrypi 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux 处理器型号armv6l,在下载的RXTX工具包中并无此种系统版本,在实际测试中,所找到的RXTX工具包也都不能使程序运行,均报出系统位数不符。
工作过程中,经常需要和卡片打交道,如何快速的读写卡,提高些工作效率呢?业余时间,搞了个读写卡测试工具,
RXTX 的下载可以到官网或者Fizzed,官网发现并没有64位的支持,但是在Fizzed中找到的2.2版的64,32的windows和Linux版本http://fizzed.com/oss/rxtx-for-java 1.windows下的串口调试 将rxtxParallel.dll、rxtxSerial.dll拷贝到%JAVA_HOME%安装目录bin目录下 将rxtxParallel.dll、rxtxSerial.dll拷贝到%JAVA_HOME%安装目录jre/bin目录下(eclipse开发时调
RXTX 的下载可以到官网或者Fizzed,官网发现并没有64位的支持,但是在Fizzed中找到的2.2版的64,32的windows和Linux版本http://fizzed.com/oss/rxtx-for-java
在之前的文章中,我们讨论了使用单例模式的SerialPortEventListener类。然而,这种模式在某些情况下并不理想,因为它会导致重复创建监听器,从而无法正确获取串口返回的数据。那么,如何实现SerialPortEventListener的复用呢?
【引子】我的专辑《DuerOS 的AI 实战》涵盖了DuerOS应用中较多方向的内容,有点有面,已经有39篇文字,本文是第40篇。四十不惑,如果读者目前还无法掌握DuerOS的应用全貌,或许这一篇文字能给大家提供帮助。
之前我们为大家介绍过EasyNVR中新增的串口功能,该功能开启后,可以切换硬盘录像机内任意一个视频通道在EasyNVR播放。
在这个万物互联的时代,数据与数据之间的相互传输交流,显得尤为重要。那么要怎样才能使计算机与传统的物联设备相连接呢?这时,串口服务器这一媒介的作用就凸显出来了。那么,你知道什么是串口服务器吗?串口服务器该如何使用呢?今天,就由海翎光电的小编来为大家详细介绍下串口服务器。
我是觉得这个接口处确实是用的串口(怪我以前没有好好看文档,就是串口的协议,好尴尬)。我就觉得这个设计好顶,我一直都想知道怎么做的。一年前我太垃圾不能想明白,现在比以前强了很多,想重新研究一下。
随着科技的发展,计算机的运用有很大意义上的普及,但是如果计算机出了什么问题,一般人是不清楚的。但是在没有特别严重的问题时,是可以通过计算机自己检测的。例如串口调试,就是通过计算机的自动检测,来查看计算机的串行端口进行调试设备。那么串口调试助手是做什么的?
(一)在#include "MT_UART.h"函数中 函数名:MT_UartInit 函数作用:MT层初始化串口 函数原型:
EasyNVR具备一个串口功能,用户在使用EasyNVR的时候可以将硬盘录像机接入串口,来解决访问硬盘录像机下方不同的流在同一个通道播放的问题。本文讲一下串口功能的开启方法。
https://blog.csdn.net/Pieces_thinking/article/details/99234401
大家好,今天分享的是使用C/C++编写一个读取串口数据的代码,然后将其编译成Windows下的动态链接库(.dll文件),然后写一个简单的java demo来调用C/C++接口。
本文将以Android的USB串口通讯库为例,介绍Delphi如何在Android中使用Java的库。
1. Andorid串口开发包一般使用google多年前提供的android-serialport-api, 提供自用分支
使用Win32文件方式操作:打开串口(创建文件)->配置参数->发送(写文件)-->接收(读文件)
玩过ROS的人都会知道,玩ROS绝对不是我等屌丝的游戏,毕竟投入成本太高,稍微搞点高端的SLAM、做个机器学习、图像识别和跟随,那激光雷达、深度摄像头这些大件就必须得上,而这些硬件往往价格都非常高。
不可否认,目前工业现场仍然会有很多串口设备的存在,对于这些串口设备,如果想要联网,就必须要转换成网络接口,这时候就会用到全国产串口服务器。
这里我使用一个自己制作的工具来完整卡片的读写和消费验证。这个工具使用了java的串口通信。
EasyNVR在前期的开发中增加了一个串口功能,这个功能我们不常提起,算是比较小众的一个功能,但是对需要通过一个链接来切换视频通道的项目来说,是非常实用的功能。EasyNVR内串口功能的作用是假如EasyNVR接入的硬盘录像机,通过开启串口,即可通过一个通道来切换硬盘录像机内任意一个视频通道播放。
串口服务器能够将传统的串口通信转化为网络通信,使得串口设备能够无缝地融入现代的网络环境中。这种服务器内置了多种协议,如TCP/UDP/HTTP等,能够轻松地将RS-232/485/422串口转换为TCP/IP网络接口。通过这样的转换,不仅实现了数据的双向透明传输,还使得串口设备能够立即获得TCP/IP网络接口功能,极大地拓展了串口设备的通信距离。
何谓串口?串口就是一个计算机接口,用于数据通信,例如计算机。老一点的PC和笔记本都有串口,工控机一般配置有串口,如果没有可以到淘宝上买USB-串口转换器。
– 随着移动互联网技术的迅猛发展,两大主流智能移动设备iOS 和Android占据了绝对的市场,除了基本的通话、娱乐功能之外,这些移动设备已经成为新时代中重要的信息终端设备节点。 – 通用串行总线(USB)目前已经成为了最标准的接口,用于提供系统一个可靠且低成本的数字连接,目前在使用方面已经超越了电脑的范畴,并已广泛应用在工业、医疗、消费电子、通信网络等等。 – RS232接口长期广泛存在于在各种应用领域,随着安卓手机平板的大量上市,安卓系统下通过USB转RS232接口接入外设的应用需求也开始变得强烈起来。
串口一般有两个重要的引脚,分别是 TX 和 RX,TX 是发送引脚,RX 是接收引脚。发送引脚,故名思意是发送数据;接收引脚则是接收数据的。
在window下开发的串口操作项目,在CentOS7环境报错。报错的顺序是可以打开串口,但是在向串口发送指令的时候,直接退出了。
继续前两篇” ZigBee On Windows Mobile--1.背景和结构”和” ZigBee On Windows Mobile--2.硬件和软件设计”,这次来讲最后一部分,模拟器和实物调试。 实物调试相对于模拟器调试来说,要简单一点。例如,HP iPaq rx3700系列的PDA,是带串口的,只要配上一根串口线,就可以和外设进行串口通信。如下图1所示,HP iPaq rx3700通过黑色的串口转接线和ZigBee模块相连,右边的ZigBee模块通过电池供电,那样就可以进行调试了。
之前用RXTX 获取串口列表的时候,如果串口被使用,就没法获取到了。 所以采用另外一种方式,利用注册表来获取所有串口列表 package com.zh.client.serial.utils; import java.io.*; import java.util.ArrayList; import java.util.List; / 获取com端口,windows专用 / public class ComPortScanUtil { public static List<String> get
setup()函数中的代码只会被运行一次,通常用来做一些初始化工作;loop()中的代码会被无限次地重复运行,此函数为程序的主体部分。
关于安卓设备上使用串口,谷歌官方在github上有提供代码实例,里面有JNI的代码和串口API的java文件,工程的地址如下: https://github.com/cepr/android-serialport-api
个人在早年初学Arduino时参考了很多的相关的书籍,但是让我记忆犹新的有本书是叫<<Arduino权威指南>>,是一个外国人写的书,翻译者是Arduino百度贴吧吧主,此书迄今为止一共出了两版.一直想买来收藏,但是由于种种原因都没有如愿,没有收藏.时值2020年的最后一个月,今年是我写文章的第一年,马上总数就超300篇,可能深度不够,但是自认为广度绝对有.在最后一个月想写几篇最用心的文章,送别2020.希望在这个系列的文章内有所体现.
无论做的什么串口通信,数据总是一条一条的发送,发送完一条再发送另一条,发送每一条数据之间存在时间间隔,串口接收数据的时候控制一个
我先把要分析的代码放到这里,在上篇文章我们知道了。扩展件的开始是可以直接按照ESP32_dev来开发的,而且对于serial1这个串口,在代码内部进行了引脚的映射,以及波特率和8N1这些传输方式对我们来讲都是透明的。
调试程序时,最常用的一个手段是打印一些调试语句,而最常用的打印函数应该就是printf()了。printf()的作用是向标准输出设备输出格式化的调试语句。这个标准输出设备默认是PC Console或串口
<iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe>
串口发送数据给电脑,那么按照约定会设置串口相关的参数,比较重要的就是波特率。设置波特率并不是单片机一方进行设置,而是单片机和电脑都要进行设置。
OrangePi AIpro(8T)采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。 Orange Pi AIpro引用了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。 Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求。
串口通讯(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。
RS232是美国电子工业协会(Electronic Industries Association,EIA)于1962年发布的串行通信接口标准,其中RS为英文“Recomend Standard”的缩写,中文翻译为“推荐标准”,232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定,其输出的电平称为RS232电平。
领取专属 10元无门槛券
手把手带您无忧上云