久久久久久久麻豆,中日韩av在线,麻豆av在线免费,中文字幕二区三区,欧美日韩视频一区二区,亚洲欧美日韩在线一区,国产无毒不卡

MSComm控件的使用方法(232通訊用)


MSComm 控件為應用程序提供了串口通信功能,該應用程序允許通過串口發(fā)送和接收數(shù)據(jù)。

語法
MSComm
說明
MSComm控件提供了兩種處理通信的方法:
· 事件驅(qū)動通信,是一種功能很強的處理串口活動的方法。在大多數(shù)情況下,用戶需要獲知事件發(fā)生的時間,

例如,在CD(Carrier Detect)線或RTS(Request To Send)線上有字符到達或發(fā)生了改變等。在這種情況下

,使用MSComm 控件的OnComm 事件捕獲和處理這些通信事件。OnComm也可以捕獲和處理通信中的錯誤。要獲取

所有事件和通信錯誤的完整清單,請參閱CommEvent屬性。
· 用戶也可以在每個重要的程序功能之后檢查CommEvent 屬性的值來檢測事件和通信錯誤。這對小的自含程序

可能比較常用。例如,如果編寫一個簡單的電話撥號程序,那么在接收了每個字符后都產(chǎn)生一個事件并沒有
意義,因為你只打算從調(diào)制解調(diào)器中接收OK響應信息。
使用的每個MSComm 控件都與一個串口對應。如果在應用程序中需要訪問多個串口,必須使用多個MSComm 控件

。可以在Windows 控制面板中修改串口地址的中斷地址。
雖然MSComm控件有許多很重要的屬性,但應先熟悉下面幾個屬性:
屬性描述
CommPort 設置或返回通信端口號
Settings 以字符串的形式設置或返回波特率、奇偶校驗、數(shù)據(jù)位和停止位
PortOpen 設置或返回通信端口的狀態(tài)。也可以打開和關閉端口
Input 返回和刪除接收緩沖區(qū)中的字符
Output 將字符串寫入發(fā)送緩沖區(qū)

示例
下面的例子演示了使用調(diào)制解調(diào)器進行基本的通信。
Private Sub Form_Load ()
 Buffer to hold input string
Dim Instring As String
 Use COM1.
MSComm1.CommPort = 1
 9600 baud no parity 8 data and 1 stop bit.
MSComm1.Settings = "9600N81"
 Tell the control to read entire buffer when Input
 is used.
MSComm1.InputLen = 0
 Open the port.
MSComm1.PortOpen = True
 Send the attention command to the modem.
MSComm1.Output = "ATVtQ0"& + Chr$(13) Ensure that
 the modem responds with “OK”
 Wait for data to come back to the serial port.
Do
DoEvents
Buffer$ = Buffer$ MSComm1.Input
Loop Until InStr (Buffer$ “OK” & vbCRLF)
 Read the "OK" response data in the serial port.
 Close the serial port.
MSComm1.PortOpen = False
End Sub
注意:MSComm 控件可以使用查詢或事件驅(qū)動的方法從串口接收數(shù)據(jù)。本例使用了查詢的方法。對于事件驅(qū)動方

法的例子,請參閱OnComm 事件的幫助。
Break屬性
設置或清除斷開信號狀態(tài)。在設計時該屬性不可用。
語法
object.Break [=value]
Break屬性的語法有如下幾個部分:
部分描述
object 對象表達式,其值是“應用于”列表中的一個對象
value 一個布爾表達式,指明是否設置斷開信號狀態(tài),如“設置”中所示
設置
vlaue 值的設置如下:
設置描述
True 設置斷開信號狀態(tài)
False 清除斷開信號狀態(tài)
說明
當設置為True 時,Break 屬性就發(fā)送一個斷開信號。斷開信號將停止字符發(fā)送,將發(fā)送線置為斷開狀態(tài),直到

將Break屬性置為False。
通常,為短時間區(qū)以及只有當用于通信的設備需要設置斷開狀態(tài)時才設置斷開狀態(tài)。
數(shù)據(jù)類型
Boolean。

示例
下面的例子演示了如何發(fā)送十分之一秒的斷開信號。
 Set the Break condition.
MSComm1.Break = True
 Set duration to 1/10 second.
Duration! = Timer + .1
 Wait for the duration to pass.
Do Until Timer  Duration!
Dummy = DoEvents()
Loop
 Clear the Break condition.
MSComm1.Break = False

CDHolding屬性
通過檢查CD 線的狀態(tài)來查詢是否有載波。CD(Carrier Detect,載波檢測)是調(diào)制解調(diào)器發(fā)送給連接計算機的

指示調(diào)制解調(diào)器在線的信號。該屬性在設計時不可用,在運行時是只讀的。
語法
object.CDHolding
CDHolding屬性的語法有如下幾個部分:
部分描述
object 對象表達式,其值是“應用于”列表中的一個對象
設置
CDHolding屬性的設置如下:
設置描述
True CD線高
False CD線低
說明
當CD線高(CDHolding = True)并超時,MSComm控件就將CommEvent屬性設置為commEventCDTO(Carrier

Detect Timeout Error),并產(chǎn)生一個OnComm事件。CD也稱為RLSD(Receive Line Singal Detect,接收線信

號檢測)。
注意:尤其要注意的是,在主機應用程序比如電子公告板中要偵測載波信號的丟失問題,因為呼叫者隨時都有

可能掛起。
數(shù)據(jù)類型:
Boolean。

CommEvent 屬性
返回最近的通信事件或錯誤。該屬性在設計時不可用,在運行時是只讀的。
語法
object.CommEvent
CommEvent屬性的語法有如下幾個部分:
部分描述
object 對象表達式,其值是“應用于”列表中的一個對象
說明
盡管通信事件或錯誤都產(chǎn)生OnComm 事件,但CommEvent 屬性中包含了事件或錯誤的代碼。要確定導致OnComm

事件的實際錯誤或事件,必須引用CommEvent屬性。
CommEvent 屬性為通信事件或錯誤返回下列值之一。在該控件的對象庫中也可以找到這些常量。
通信錯誤包含了下面的設置:
常量值描述
ComEventBreak 1001 收到了斷開信號
ComEventCTST
O
1002 Clear To Send Timeout。在發(fā)送字符時,在系統(tǒng)指定的事件內(nèi),CTS(Clear To Send)線是低電平
ComEventDSRT
O
1003 Data Set Ready Timeout。在發(fā)送字符時,在系統(tǒng)指定的事件內(nèi),DSR(Data Set Ready)線是低電平
ComEventFrame 1004 數(shù)據(jù)幀錯誤。硬件檢測到一個數(shù)據(jù)幀錯誤
ComEventOverru
n
1006 端口溢出。硬件中的字符尚未讀,下一個字符又到達,
并且丟失
ComEventCDTO 1007 Carrier Detect Time。在發(fā)送字符時,在系統(tǒng)指定的事件內(nèi),CD(Carrier Detect)線是

低電平。CD也稱為RLSD(Receive Line Singal Detect,接收線信號檢測)
ComEventRxOve
r
1008 接收緩沖區(qū)溢出。在接收緩沖區(qū)中沒有空間
ComEventRxPari
ty
1009 奇偶校驗錯。硬件檢測到奇偶校驗錯誤
續(xù)表
ComEventTxFull 1010 發(fā)送緩沖區(qū)滿。在對發(fā)送字符排隊時,發(fā)送緩沖區(qū)滿ComEventDCB 1011 檢取端口DCB(

Device Control Blick)時發(fā)生了沒有預料到的錯誤
通信事件包含了下面的設置:
常量值描述
ComEvSend 1 發(fā)送緩沖區(qū)中的字符數(shù)比Sthreshold值低
ComEvRecei
ve
2 接收到了Rthreshold 個字符。持續(xù)產(chǎn)生該事件,直到使用了Input屬性刪除了接收緩沖區(qū)中的數(shù)據(jù)
ComEvCTS 3 CTS(Clear To Send)線改變
ComEvDSR 4 DSR(Data Set Ready)線改變。當DSR 從1 到0 改變時,該事件發(fā)生
ComEvCD 5 CD(Carrier Detect)線改變
ComEvRing 6 檢測到響鈴信號。一些URAT(Universal Asynchronous
Reciver-Transmitters通用異步收發(fā)器)不支持該事件
ComEvEOF 7 收到了EOF字符(ASCII字符26)
數(shù)據(jù)類型
Integer。

CommID屬性
返回標識通信設備的句柄。該屬性在設計時不可用,在運行時是只讀的。
語法
object.CommID
CommID屬性的語法有如下幾個部分:
部分描述
object 對象表達式,其值是“應用于”列表中的一個對象
說明
該值與Windows API 函數(shù)CreateFile 返回值是一樣的。在Windows API 中調(diào)用任何通信例程都使用該值。
數(shù)據(jù)類型
Long

CommPort屬性
返回或設置通信端口號。
語法
object.CommPort [=value]
CommPort屬性的語法有如下幾個部分:
部分描述
object 對象表達式,其值是“應用于”列表中的一個對象
value 指定端口號的整數(shù)
說明
在設計時,可以將value 置為1 到16 之間的整數(shù)(缺省為1)。然而,當試圖使用PortOpen 屬性打開一個不存

在的端口號時,MSComm 控件就產(chǎn)生68
錯誤(Device unavilable)。
警告:必須在打開端口前設置CommPort屬性。
數(shù)據(jù)類型
Integer。

CTSHolding屬性
檢查CTS(Clear To Send)線的狀態(tài),確定是否可以發(fā)送數(shù)據(jù)。通常,調(diào)制解調(diào)器給連接的計算機發(fā)送CTS 信

號,指明正在處理發(fā)送過程。該屬性在設計時不可用,在運行時是只讀的。
語法
object.CTSHolding
CTSHolding屬性的語法有如下幾個部分:
部分描述
object 對象表達式,其值是“應用于”列表中的一個對象
CTSHolding屬性的設置如下表所示:
設置描述
True CTS(Clear To Send)線高
False CTS(Clear To Send)線低
說明
當CTS線低(CTSHolding = False)并超時,MSComm控件就設置CommEvent
屬性為comEventCTSTO(Clear To Send Timout)并激活OnComm事件。
在RTS/CTS( Request To Send / Clear To Send)硬件握手中使用CTS線。如果需要確定CTS線的狀態(tài),可以使用

CTSHolding屬性手動查詢。
要獲取更多信息或握手協(xié)議,請參閱Handshaking屬性。
數(shù)據(jù)類型
Boolean

DSRHolding屬性
確定DSR(Data Set Ready)線的狀態(tài)。通常,調(diào)制解調(diào)器給連接的計算機發(fā)送CTS信號,指明準備就緒。該屬

性在設計時不可用,在運行時是只讀的。
語法
object.DSRHolding
object置換元表示一個對象表達式,其值為“應用于”列表中的一個對象。
DSRHolding屬性返回如下值:
值描述
True DSR(DataSetReady)線高
False DSR(DataSetReady)線低
說明
當DSR線高(DSRHolding = False)并超時,MSComm控件設置CommEvent
屬性為comEventDTSTO(Data Set Ready Timeout)并激活OnComm事件。
在為DTE(Data Terminal Equipment)計算機編寫DSR/DTR(Data Set Ready /
Data Terminal Equipment )

COPYRIGHT(C) 2011 廈門永宏亞得機電科技有限公司版權所有(閩ICP備05025945號) ALL RIGHTS RESERVED?

電話: 0592-5190891 傳真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 廈門市海滄區(qū)興港六里17號2607室 郵編:361009 聯(lián)系人:翟先生