【java】簡單的傳送一段資料到串列埠
阿新 • • 發佈:2018-12-09
可以跟著一起操作。
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,執行程式碼即可接收到程式傳送的資料。