本文要实现的是利用java读取串口数据,我这边是读取的Arduino开发板的数据

 1、下载依赖

 下载地址RXTX for Java (fizzed.com)

java从串口读取固定数据 java获取串口数据_物联网

http://fizzed.com/oss/rxtx-for-java

java从串口读取固定数据 java获取串口数据_stm32_02

java从串口读取固定数据 java获取串口数据_java_03

2、将下载的依赖解压存放

可以看到在rxtx文档介绍中已经介绍了应该咋那么存放文件
rxtxParallel.dllrxtxSerial.dll复制到 C:\Program Files\Java\jdk1.8.0_112\jre\bin

 

java从串口读取固定数据 java获取串口数据_单片机_04

3、新建Java项目

将RXTXcomm.jar  导入项目中。

IDEA设置:Ctrl+Shift+ALt+S——>选择Libraries——>左上角+号找到jar包所在位置添加应用。

java从串口读取固定数据 java获取串口数据_物联网_05

 4、新建SerialReader

package com.zxc.websocket;

import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;

import java.io.InputStream;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;

public class SerialReader {

    public static void main(String[] args) throws Exception {
        CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM3");
        SerialPort serialPort = (SerialPort) portIdentifier.open("SerialReader", 2000);
        serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
        InputStream input = serialPort.getInputStream();

        Timer timer = new Timer();
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                try {
                    Scanner scanner = new Scanner(input);
                    while (scanner.hasNextLine()) {
                        String line = scanner.nextLine();
                        System.out.println(line);
                    }
                } catch (Exception e) {
                    System.err.println("从串口读取失败:" + e.getMessage());
                }
            }
        };

        // 每隔1秒执行一次任务x
        timer.scheduleAtFixedRate(task, 0, 1000);
    }
}

运行即可

java从串口读取固定数据 java获取串口数据_stm32_06

 注意:运行时串口不得被其他软件或者硬件占用。不然读取会报错。

下篇给大家分享如何利用websocket将串口数据进行传输