随着java的使用越来越普遍,很多时候在和物接入打交道时难免会遇到一些串口相关的操作,下面将平时基于各种操作系统的串口使用方法整理下(重点是第三条,基于树莓派的使用经历)。
首先分享rxtx的下载路径:RXTX for Java
一:windows 7
windows操作系统下,在使用java进行串口相关的功能开发时,jre环境下必须要有对应的JNI库支持,按照上面的下载路径下载对应操作系统的rxtx.rar包,解压后将其中的rxtxParallel.dll和rxtxSerial.dll移至jre安装目录下的bin目录内即可,如图:
二:Linux(CentOS)
Linux操作系统下,以CentOS为例,使用sudo yum install rxtx 命令进行安装,默认的安装目录为/usr/lib64/rxtx ,将目录下的librxtxParallel.so、librxtxSerial.so两个.so文件放置jre的lib目录下,
三:树莓派(4B)
写这篇文章主要也是为了记录在树莓派上使用串口时没有对应的驱动程序,经过一番折腾才搞定,所以把常用的操作系统中关于串口使用这块的东西整理记录下,希望能给更多的人提供方便。首先交代一下背景:
在树莓派4B上,使用的操作系统是 2021-05-07-raspios-buster-armhf-full,因为自定义了两个串口,分别命名为ttyAMA1和ttyAMA2,当程序开发完部署在树莓派上后,对应的串口无法使用,经过代码跟踪,发现rxtx2.1.7源码中对Linux环境的串口定义只有3种,分别为ttyS、ttySA、ttyUSB,所以自定义的ttyAMA类型的串口号就无法识别了,找到问题的根源,那么就开始解决...
可以通过http:
//rxtx
.qbang.org
/pub/rxtx查看可用的rxtx版本,下载对应的源码至指定目录
①下载源码:在pi目录下创建文件夹或指定可用文件夹,后进入此文件夹使用命令:
wget http:
//rxtx
.qbang.org
/pub/rxtx/rxtx-2
.1-7r2.zip 进行下载
②解压源码:unzip rxtx-2.1-7r2.zip 同目录下得到同名文件夹
③编译环境配置:
a.编译前需指定当前操作系统版本号,可通过命令:uname -r 查看,让后将此版本号配置在:/usr/include/linux/version.h文件中
b.当前版本中的jdk的最高版本为1.6,为防止编译完成后安装时出现 libtool: install: armv6l-unknown-linux-gnu/librxtxRS485.la’ is not a directory 错误,所以在编译前请修改configure文件, 在jdk 版本中添加当前操作系统中安装的最高JDK版本(有多处,需全部修改),如:
④ 编译、安装:
a.将账号切换至ROOT账户下,依次输入如下命令,等待每个步骤完成后,最后会显示安装成功的日志
sh ./configure
make
make install 完成后,会自动将已经编译完成的依赖库文件安装至当前的jre环境中 pi@raspberrypi:/usr/lib/jvm/java-8-openjdk-armhf/jre/lib/arm