linux java 串口编程实例_linux环境下实现Java RXTX串口通信

linux 环境为:centos7 64位

(1) Download rxtx:

建议下载 rxtx-2.2pre2-bins.zip

网址:http://rxtx.qbang.org/pub/rxtx/rxtx-2.2pre2-bins.zip

解压后拷贝 x86.64/RXTXcomm.jar 至 {JAVA_HOME}/jre/lib/ext

librxtxSerial.so {JAVA_HOME}/jre/lib/amd64/

(2) 查看串口情况

查看串口是否可用,可以对串口发送数据比如对com1口,echo lyjie126 > /dev/ttyS0

查看串口名称使用 ls -l /dev/ttyS* 一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;

查看串口驱动:cat /proc/tty/drivers/serial

查看串口设备:dmesg | grep ttyS*

(3) demo代码测试

注意:端口号为:/dev/ttyS0;发送中文数据要注意使用GBK编码,

outputStream.write(data.getBytes("GBK"));

问题:

1、RXTX fhs_lock() Error: creating lock file: /var/lock/LCK..ttyS0: File exists

产生原因:有多个进程同时使用串口,端口被占用。

解决办法:# rm /var/lock/LCK..ttyS0

2.Java_gnu_io_RXTXPort_nativeDrain+0xea:版本问题,更换合适的版本。如linux下64位的版本要确认

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您提供一个简单的Java串口编程实例。请注意,为了运行此示例,您需要在计算机上安装Java串口通信库。 首先,您需要导入所需的库。您可以使用`RXTX`库来实现Java串口通信。您可以在以下网址下载并安装该库:http://rxtx.qbang.org/wiki/index.php/Main_Page 接下来,让我们看一个简单的Java串口通信示例: ```java import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; public class SerialCommunicationExample { public static void main(String[] args) { try { // 获取串口通信端口标识符 CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM1"); // 打开串口 SerialPort serialPort = (SerialPort) portIdentifier.open("SerialCommunicationExample", 2000); // 设置串口参数 serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // 获取输入流和输出流 BufferedReader input = new BufferedReader(new InputStreamReader(serialPort.getInputStream())); OutputStream output = serialPort.getOutputStream(); // 向串口发送数据 output.write("Hello, World!".getBytes()); // 读取串口返回的数据 String line; while ((line = input.readLine()) != null) { System.out.println("Received: " + line); } // 关闭串口 serialPort.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 这个示例演示了如何通过串口与外部设备进行通信。它在COM1端口上打开串口,并设置波特率为9600,数据位为8,停止位为1,无校验位。然后,它向串口发送"Hello, World!"的数据,并打印串口返回的数据。 请注意,这只是一个简单的示例,您可能需要根据您的具体需求进行调整和扩展。希望对您有所帮助!如果您有任何问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值