rxtx-使用RXTX 在Linux中进行串口编程时找不到串口

问题描述

使用RXTX 在Linux中进行串口编程时找不到串口

最近使用RXTX串口编程,windows系统中调试成功,但是到了Linux系统中就出现各种问题。测试用的是树莓派,系统为Linux raspberrypi,串口名称为/dev/ttyAMA0,使用xgcom串口调试已经成功,能正常收发数据。RXTX环境通过源码编译安装也成功,编写的程序开启并无异常,但是就是找不到一个串口,使用串口名直接创建串口对象报出NoSuchPortException。

使用方法为
//获得串口列表
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
System.out.println(portId.getName());
}
//通过串口名查找串口
CommPortIdentifier linuxPort = CommPortIdentifier.getPortIdentifier(portName);

因为树莓派系统太小,无法安装IDE,就将程序编译成jar文件,使用java -jar命令直接执行,用户为root用户

有没有大神知道是咋回事?

解决方案

没人回答算了,已经解决

解决方案二:

我也遇到同样的问题,请问怎么解决的

解决方案三:

源码的问题,树莓派处理器为arm,rxtx需在系统中重新编译安装,不能直接使用copy的方法,另外最好把接口名称改了,要不然也找不到串口

时间: 2024-08-31 03:19:13

rxtx-使用RXTX 在Linux中进行串口编程时找不到串口的相关文章

Linux中如何卸载软件包时得知具体包名?

Linux中如何卸载软件包时得知具体包名? 删除软件包的命令是rpm -e XXX 如果不知道这个XXX的确切拼写时,可以用rpm -qa 示例:[root@localhost k3b-1.0.5]# rpm -qa gccgcc-4.4.7-3.el6.i686 查询所有安装的软件包或者用 rpm -qa | grep xxxx 查询出名字 示例:[root@localhost k3b-1.0.5]# rpm -qa | grep gccgcc-4.4.7-3.el6.i686gcc-c++-

Linux中的c++编程<<语法

问题描述 Linux中的c++编程<<语法 请教一下各位:*env << "Usage: " << progName中的<<到底起到什么作用,这是什么语法? 解决方案 <<就是一个输出流操作符,operator 解决方案二: 你的env应该是一个ostream等输出流对象,这个就相当于输出后面的字符串和变量到对应的管道. 解决方案三: Linux的shell编程--语法Linux下C++ Socket编程linux C++ 多

串口大师提示找不到串口的解决办法,增加注册表项目。

          今天进行串口调试提示找不到串口,查了注册表发现串口的注册值:\Device\ProlificSerial2 ,值COM4,但是串口大师还是找不到串口,注册表中没有项目,解决办法如下: 1 .新建一个TXT文档,键入以下内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM] "\\Device\\Serial1"="COM1&quo

浅析Linux中的时间编程和实现原理(一) Linux应用层的时间编程

引子 我们都生活在时间中,但却无法去思考它.什么是时间呢?似乎这是一个永远也不能被回答的问题.然而作为一个程序员,在工作中,总有那么几次我必须思考什么是时间.比如,需要知道一段代码运行了多久:要在 log 文件中记录事件发生时的时间戳:再比如需要一个定时器以便能够定期做某些计算机操作.我发现,在计算机世界中,时间在不同场合也往往有不同的含义,让试图思考它的人感到迷茫.但值得庆幸的是,Linux 中的时间终究是可以理解的.因此我打算讨论一下有关时间的话题,尝试着深入理解 Linux 系统中 C 语

浅析Linux中的时间编程和实现原理(四)Linux 内核的工作

回顾 近年来,随着 Linux 的广泛使用,对时间编程提出了更高的要求.实时应用.多媒体软件对时钟和定时器的精度要求不断提高,在早期 Linux 内核中,定时器所能支持的最高精度是一个 tick.为了提高时钟精度,人们只能提高内核的 HZ 值 (一个内核参数,代表内核时钟中断的频率).更高的 HZ 值,意味着时钟中断更加频繁,内核要花更多的时间进行时钟处理.而内核的任何工作对于应用来说纯粹是无益的开销.当 HZ 值提高到 1000 之后,如果继续提高,Linux 的可用性将下降. 另外一方面,我

浅析Linux中的时间编程和实现原理(三) Linux内核的工作

引子 时间系统的工作需要软硬件以及操作系统的互相协作,在上一部分,我们已经看到大多数时间函数都依赖内核系统调用,GlibC 仅仅做了一次请求的转发.因此必须深入内核代码以便了解更多的细节. 内核自身的正常运行也依赖于时钟系统.Linux 是一个典型的分时系统,CPU 时间被分成多个时间片,这是多任务实现的基础.Linux 内核依赖 tick,即时钟中断来进行分时. 为了满足应用和内核自己的需求,内核时间系统必须提供以下三个基本功能: 提供系统 tick 中断(驱动调度器,实现分时) 维护系统时间

浅析Linux中的时间编程和实现原理(二)硬件和GLibC库的细节

引子 熟悉了基本的编程方法之后,我们的兴趣就在于,计算机如何实现这一切的呢?在那些应用层 API 和底层系统硬件之间,操作系统和库函数究竟做了些什么? 首先看下 Linux 时间处理的一般过程: 图 1. 时间处理过程 应用程序部分已经在第一部分详细介绍过了,在第二部分我将介绍硬件和 GlibC 相关实现的一些概况. 硬件 PC 机里常见的时钟硬件有以下这些. RTC (Real Time Clock,实时时钟) 人们需要知道时间的时候,可以看看钟表.计算机系统中钟表类似的硬件就是外部时钟.它依

Linux中如何将开机时显示的信息保留下来

为了检查故障,我们需要Linux在系统启动的过程中记录信息,并保留下来以便检查日志,我们可以通过dmesg命令来实现,可输入下面的命令: #dmesg > bootmessage 该命令将把开机时显示的信息重定向输出到一个文件bootmessage中 示例: [root@localhost sunco]# dmesg > bootmessage[root@localhost sunco]# cat bootmessage ......  SELinux: 2048 avtab hash slo

fork() 函数与 Linux 中的多线程编程

一.fork()函数 在操作系统的基本概念中进程是程序的一次执行,且是拥有资源的最小单位和调度单位(在引入线程的操作系统中,线程是最小的调度单位).在Linux系统中 创建进程有两种方式:一是由操作系统创建,二是由父进程创建进程(通常为子进程).系统调用函数fork()是创建一个新进程的唯一方式,当然 vfork()也可以创建进程,但是实际上其还是调用了fork()函数.fork()函数是Linux系统中一个比较特殊的函数,其一次调用会有两个返 回值,下面是fork()函数的声明: #inclu