linux rxtx?linux版软件网站

rxtx是什么意思

RXTX项目提供了Windows,Linux,MacosX,Solaris操作系统下的兼容javax.comm串口通讯包API的实现,为其他研发人员在此类系统下研发串口应用提供了相当的方便。RXTX是个提供串口和并口通信的开源java类库,由该项目发布的文档均遵循LGPL协议。为了使我们的程式使用RXTX作为串口通讯的底层API,需要配置他的环境。仍然以Linux系统平台为例:1.复制librxtxSerial.so,librxtxParallel.so到$JAVA_HOME/lib/$(ARCH)/。2.复制RXTXcomm.jar到$JAVA_HOME/ext/,或在应用程式启动的CLASSPATH中包含RXTXcomm.jar。

Springboot+RXTX for JAVA 实现串口通信

下载RXTX可以从官网或者Fizzed网站,官网没有64位的支持,但在Fizzed中可以找到2.2版的64位和32位的Windows和Linux版本。

1. Windows下的串口调试

将rxtxParallel.dll和rxtxSerial.dll复制到%JAVA_HOME%安装目录的bin目录下,同时也要复制到%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工具包都不能使程序运行,均报出系统位数不符。

又找到另一种处理方法,可以直接在系统中make编译RXTX源码安装。

最新的RXTX稳定版本是rxtx 2.1-7r2。首先用wget获取源码包并解压。

如果直接MAKE编译安装,可能会遇到以下两种错误:

错误1:/tmp/rxtx-2.1-7r2/./src/I2CImp.c:135: error:‘UTS_RELEASE’ undeclared(first use in this function)

这是由于version.h中缺少’UTS_RELEASE’信息,需要手工添加。先获取当前系统的版本信息,然后在/usr/include/Linux/version.h中添加。

3.10.24+为上一步中获得的版本号

错误2:libtool: install: armv6l-unknown-linux-gnu/librxtxRS485.la is not a directory

这个错误会出现在JDK1.6及以上的运行环境下,需要对configure文件进行修改。在configure文件中找到这一行,在后边添加上当前JDK的版本号即可,如

完成以上两项修改后,就可以正常编译安装了。如果看到 Libraries have been installed in:/usr/lib/jvm/jdk-7-Oracle-armhf/jre/lib/arm则说明RXTX安装已经成功。之后执行

注意:可能会有权限不足的情况,需要chmod 777 test.c操作

至此使用RXTX框架的串口编程代码就可以在树莓派使用了。

(这里需要注意的是,在Linux系统中,大部分的串口名称为/dev/ttyS*,但在特殊环境下如本次使用的raspberrypi,使用RXTX方法获得串口集合是不成功的,原因是RXTX本身源码问题,找了好久的原因,终于在RXTX官网上找到了解释:

即RXTX本身支持的Linux串口搜索只限制为/dev/ttyS*等,其他名称的并不能支持,而raspberrypi中的串口名称为/dev/ttyAMA*,故无法找到系统串口。这种情况下有两种解决方案:

1.修改源码:参考官网故障排除 rxtx.qbang.org/wiki/ind...

源码RXTXCommDriver.java文件中518行开始,为Linux系统环境下的串口名称查找,添加所需串口名即可(如ttyAMA)(此种方法需要重新编译安装)

2.将串口文件进行映射,即使用命令 ln-s/dev/ttyAMA0/dev/ttyS0,即可找到/dev/ttyS0映射串口,也就对应了/dev/ttyAMA0实际串口。

通讯rxtx硬件原理

通讯rxtx硬件原理是通过串口通信实现计算机与外设之间的数据交互。具体来说,计算机通过串口向外设发送数据,外设通过串口返回数据给计算机。RXTX硬件原理中,串口是一个标准的通信接口,通常使用DB9或DB25连接器,它们包含了多条数据信号线和控制信号线,用于传输和控制数据的传输。而RXTX则是一种Java通讯库,可以实现串口的读写操作。

在RXTX硬件原理中,通信过程可以分为三个阶段:发送、接收和处理。首先,计算机通过串口向外设发送数据,数据经过串口线路传输到外设,外设接收到数据后进行处理。然后,外设通过串口将处理后的数据返回给计算机,计算机接收到数据后进行处理。最后,计算机根据接收到的数据进行进一步的处理,比如显示、存储等操作。

需要注意的是,不同的外设对串口的支持程度不同,有些外设需要编写相应的驱动程序才能正常工作,而有些外设则可以直接使用操作系统提供的通用串口驱动程序。同时,在使用RXTX进行串口通信时,需要注意串口的设置,比如波特率、数据位、校验位等,以确保通信的正确性。

总之,RXTX硬件原理是通过串口通信实现计算机与外设之间的数据交互,它的使用需要注意串口设置和外设支持情况。

阅读剩余
THE END