JAVA 串口編程 (一)


一、環境配置

(1)解壓復制文件

解壓javacomm20-win32.zip

把win32com.dll復制到<JAVA_HOME>/jre/bin 和<JDK>/bin目錄下

把comm.jar復制到<JAVA_HOME>/jre/lib/ext和<JDK>/lib目錄下

把javax.comm.properties復制到<JAVA_HOME>/jre/lib和<JDK>/lib目錄下

(2)設置環境變量

CLASSPATH=<JAVA_HOME>/jre /lib/ext /comm.jar;%classpath%

(3)在Eclipse的工程中加入jar包

“工程右鍵-> properties-> java build path->libraries->add external jar”去找到<JDK>/lib中放置的comm.jar的位置。

二、API概述

接口

CommDriver 可負載設備(the loadable device)驅動程序接口的一部分

CommPortOwnershipListener 傳遞各種通訊端口的所有權事件

ParallelPortEventListener 傳遞並行端口事件

SerialPortEventListener 傳遞串行端口事件

CommPort 通訊端口

CommPortIdentifier通訊端口管理

ParallelPort 並行通訊端口

ParallelPortEvent 並行端口事件

SerialPort RS-232串行通訊端口

SerialPortEvent 異常類

NoSuchPortException 當驅動程序不能找到指定端口時拋出

PortInUseException 當碰到指定端口正在使用中時拋出

UnsupportedCommOperationException 驅動程序不允許指定操作時拋出

(1)CommPort類

描述被底層系統支持的端口的抽象類。包含一些高層的IO控制方法,這些方法對於所有不同的通訊端口來說是通用的。SerialPort(串口) 和ParallelPort(並口)都是它的子類。

(2)CommPortIdentifier

主要用於對串口進行管理和設置,是對串口進行訪問控制的核心類。主要方法如下:

addPortName(String, int, CommDriver) 添加端口名到端口列表里

addPortOwnershipListener(CommPortOwnershipListener) 添加端口擁有的監聽器

removePortOwnershipListener(CommPortOwnershipListener) 移除端口擁有的監聽器

getCurrentOwner() 得到當前占有端口的對象或應用程序

getName() 得到端口名稱

getPortIdentifier(CommPort) 得到參數打開的端口的CommPortIdentifier類型對象

getPortIdentifier(String) 得到以參數命名的端口的CommPortIdentifier類型對象

getPortIdentifiers() 得到系統中的端口列表

getPortType() 得到端口的類型

isCurrentlyOwned() 判斷當前端口是否被占用

open(FileDescriptor) 用文件描述的類型打開端口

open(String, int) 打開端口,兩個參數:程序名稱,延遲時間(毫秒數)

(3)SerialPort

描述RS-232串行通信端口的底層接口,它定義了串口通信所需的最小功能集。可以直接對串口進行讀、寫及設置工作。

A:串口參數的函數

getBaudRate() 得到波特率 getParity() 得到檢驗類型

getDataBits() 得到數據位數 getStopBits() 得到停止位數

setSerialPortParams(int, int, int, int) 設置串口參數依次為(波特率,數據位,停止位,奇偶檢驗)

close() 關閉串口

getOutputStream() 得到OutputStream類型的輸出流

getInputStream() 得到InputStream類型的輸入流

B:事件及事件方法

isCD() 是否有載波

isCTS() 是否清除發送

isDSR() 數據是否准備就緒

isDTR() 數據終端是否准備就緒

isRI() 是否響鈴偵測

isRTS()   是否要求發送

addEventListener(SerialPortEventListener)    向SerialPort對象中添加串口事件監聽器

removeEventListener() 移除SerialPort對象中的串口事件監聽器

getEventType() 得到發生的事件類型返回值為int型

sendBreak(int) 設置中斷過程的時間,參數為毫秒值

setRTS(boolean) 設置或清除RTS位

setDTR(boolean) 設置或清除DTR位

notifyOnBreakInterrupt(boolean) 設置中斷事件

notifyOnCarrierDetect(boolean) 設置載波監聽事件

notifyOnCTS(boolean) 設置清除發送事件

notifyOnDataAvailable(boolean) 設置串口有數據的事件

notifyOnDSR(boolean) 設置數據備妥事件

notifyOnFramingError(boolean) 設置發生錯誤事件

notifyOnOutputEmpty(boolean) 設置發送緩沖區為空事件

notifyOnParityError(boolean) 設置發生奇偶檢驗錯誤事件

notifyOnRingIndicator(boolean) 設置響鈴偵測事件

C:串口參數的靜態成員變量

成員變量 說明 成員變量 說明 成員變量 說明

DATABITS_5 數據位為5 STOPBITS_2 停止位為2 PARITY_ODD 奇檢驗

DATABITS_6 數據位為6 STOPBITS_1 停止位為1 PARITY_MARK 標記檢驗

DATABITS_7 數據位為7 STOPBITS_1_5 停止為1.5 PARITY_NONE 空格檢驗

DATABITS_8 數據位為8 PARITY_EVEN 偶檢驗 PARITY_SPACE 無檢驗


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM