1、centos6.5 x64位系统,内核版本是2.6.32-696(安装时内核版本是2.6.32-432,需要升级),串口转usb线插上以后不可直接使用,需手动安装驱动;
安装驱动前
a. 首先要确认是否已安装kernel-devel(内核开发包,make命令):在/usr/src/kernels/
一定要注意系统内核版本和kernel的版本要一致
//安装kernel-devel
#yum install kernel-devel
b. 其次要安装gcc:
//gcc安装:
yum -y install gcc
yum -y install gcc-c++
yum install make
2、安装好驱动以后,再安装minicom,设置好串口号(linux下一般用”/dev/ttyUSB0”)、波特率(波特率不一致可能导致数据乱码或收不到数据)、数据位、校验位和停止位。
先用
dmesg ef|grep pl2303
看串口是否已识别,若没有的话,用
modprobe pl2303
执行命令,确认已识别串口后用
minicom
看是否能收到数据。
3、在程序中使用rxtxcomm:
查看cpu型号,从下载的组件中找到对应的.so文件
该组件下载地址:http://rxtx.qbang.org/pub/rxtx/rxtx-2.2pre2-bins.zip

我们已经把jdk目录命名为 JAVAHOME,把下载的组件中librxtxParallel.so和librxtxSerial.so(若在相应文件夹中只有一个文件就拷贝一个文件)拷贝至/usr/lib下,把RXTXcomm.jar拷贝至 JAVA_HOME/jre/lib/ext下。
**分隔符
问题**
直接在命令终端里读取数据正常,但是在使用这个组件的时候,读取到数据时eclipse会报错:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f85ff6f1462, pid=12801, tid=140213492819712
#
# JRE version: Java(TM) SE Runtime Environment (7.0_80-b15) (build 1.7.0_80-b15)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.80-b11 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [librxtxSerial.so+0x6462] read_byte_array+0x52
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- T H R E A D ---------------
Current thread (): JavaThread "Thread-0" [_thread_in_native, id=, stack(,)]
siginfo:si_signo=SIGSEGV: si_errno=, si_code= (SEGV_MAPERR), si_addr=
Registers:
RAX=, RBX=, RCX=, RDX=
RSP=, RBP=, RSI=, RDI=
R8 =, R9 =, R10=, R11=
R12=, R13=, R14=, R15=
RIP=, EFLAGS=, CSGSFS=, ERR=
TRAPNO=
找了许多种方法均不能解决,最后想到可能是下载的组件有问题,我开始用的是rxtx-2.1.7,替换成上面的rxtx-2.2就不会报错了。