1. 程式人生 > >【java】簡單的傳送一段資料到串列埠

【java】簡單的傳送一段資料到串列埠

可以跟著一起操作。

2 給專案新增外部jar(有eclipse和intellij兩種IDE操作方式說明) 2.1 假設你用eclipse 這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

2.2 使用intellij 這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

3 新增dll 將dll檔案複製到jdk和jre的bin目錄下 這裡寫圖片描述

這裡寫圖片描述

4 程式碼

package Test180914;

import gnu.io.CommPortIdentifier;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.UnsupportedCommOperationException
; import java.io.IOException; import java.io.OutputStream; import java.util.Enumeration; public class Test180914 { //簡單的向串列埠傳送一段資料的方法 public static void main(String[] args) { //列舉型別,獲取所有的通行埠,包括232(PORT_SERIAL)、485、並口等等 Enumeration enumeration= CommPortIdentifier.getPortIdentifiers
(); while (enumeration.hasMoreElements()){ //判斷enumeration裡面是否有更多的元素 //獲取下一個元素,該元素包含某個通訊埠的所有資訊 CommPortIdentifier commPortIdentifier= (CommPortIdentifier) enumeration.nextElement(); //如果該埠的型別是串列埠 if (commPortIdentifier.getPortType
()==CommPortIdentifier.PORT_SERIAL){ //判斷該串列埠的名稱 if (commPortIdentifier.getName().equals("COM2")){ try { //開啟串列埠,獲得該串列埠的serialPort物件 SerialPort serialPort= (SerialPort) commPortIdentifier.open("",2000); //設定該串列埠引數,9600,8,1,n serialPort.setSerialPortParams(9600,8,1,0); //獲取輸出流,利用輸出流傳送資料 OutputStream outputStream=serialPort.getOutputStream(); outputStream.write("Hello World!".getBytes()); //一定要關閉串列埠,否則會阻塞該串列埠,直到你關閉程式 serialPort.close(); outputStream.close(); } catch (PortInUseException e) { System.out.println("PortInUseException丟擲,串列埠被使用"); e.printStackTrace(); } catch (UnsupportedCommOperationException e) { System.out.println("UnsupportedCommOperationException丟擲"); e.printStackTrace(); } catch (IOException e) { System.out.println("IOException丟擲"); e.printStackTrace(); } } } } } }

5 效果 使用虛擬串列埠軟體將COM1和COM2短接,開啟串列埠助手,開啟串列埠1,執行程式碼即可接收到程式傳送的資料。 這裡寫圖片描述