共計 1886 個字符,預計需要花費 5 分鐘才能閱讀完成。
在 Java 中讀取串口數據,可以使用 RXTXcomm 庫或 jSerialComm 庫來操作串口。
-
使用 RXTXcomm 庫:
- 下載并安裝 RXTXcomm 庫,在 Java 項目中導入 RXTXcomm.jar 文件。
- 使用
CommPortIdentifier
類的getPortIdentifiers()
方法獲取所有串口的列表。 - 遍歷串口列表,使用
CommPortIdentifier
類的getName()
方法獲取串口的名稱。 - 使用
CommPortIdentifier
類的open()
方法打開指定的串口,并使用SerialPort
類的getInputStream()
方法獲取串口的輸入流。 - 使用輸入流的
read()
方法讀取串口數據,并進行處理。
示例代碼如下:
import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import java.io.InputStream; import java.util.Enumeration; public class SerialPortReader {public static void main(String[] args) {Enumeration portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) {CommPortIdentifier portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {System.out.println("Found serial port: " + portId.getName()); try {SerialPort serialPort = (SerialPort) portId.open("SerialPortReader", 2000); InputStream inputStream = serialPort.getInputStream(); int data; while ((data = inputStream.read()) != -1) {// 處理讀取到的串口數據 System.out.println("Received data: " + data); } serialPort.close();} catch (Exception e) {e.printStackTrace(); } } } } }
-
使用 jSerialComm 庫:
- 下載并安裝 jSerialComm 庫,在 Java 項目中導入 jSerialComm.jar 文件。
- 使用
SerialPort.getCommPorts()
方法獲取所有串口的列表。 - 遍歷串口列表,使用
SerialPort.getCommPort()
方法獲取指定的串口。 - 使用串口的
openPort()
方法打開串口,并使用SerialPort.getInputStream()
方法獲取串口的輸入流。 - 使用輸入流的
read()
方法讀取串口數據,并進行處理。
示例代碼如下:
import com.fazecast.jSerialComm.SerialPort; import java.io.InputStream; public class SerialPortReader {public static void main(String[] args) {SerialPort[] serialPorts = SerialPort.getCommPorts(); for (SerialPort serialPort : serialPorts) {System.out.println("Found serial port: " + serialPort.getDescriptivePortName()); serialPort.openPort(); InputStream inputStream = serialPort.getInputStream(); try {int data; while ((data = inputStream.read()) != -1) {// 處理讀取到的串口數據 System.out.println("Received data: " + data); } } catch (Exception e) {e.printStackTrace(); } serialPort.closePort();} } }
以上代碼只是簡單示例,實際使用時可能需要根據具體的串口設備和數據協議進行相應的配置和處理。
丸趣 TV 網 – 提供最優質的資源集合!
正文完
發表至: Java
2023-12-13