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

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


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

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

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

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

所有事件和通信錯(cuò)誤的完整清單,請(qǐng)參閱CommEvent屬性。
· 用戶也可以在每個(gè)重要的程序功能之后檢查CommEvent 屬性的值來(lái)檢測(cè)事件和通信錯(cuò)誤。這對(duì)小的自含程序

可能比較常用。例如,如果編寫一個(gè)簡(jiǎn)單的電話撥號(hào)程序,那么在接收了每個(gè)字符后都產(chǎn)生一個(gè)事件并沒(méi)有
意義,因?yàn)槟阒淮蛩銖恼{(diào)制解調(diào)器中接收OK響應(yīng)信息。
使用的每個(gè)MSComm 控件都與一個(gè)串口對(duì)應(yīng)。如果在應(yīng)用程序中需要訪問(wèn)多個(gè)串口,必須使用多個(gè)MSComm 控件

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

示例
下面的例子演示了使用調(diào)制解調(diào)器進(jìn)行基本的通信。
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ū)動(dòng)的方法從串口接收數(shù)據(jù)。本例使用了查詢的方法。對(duì)于事件驅(qū)動(dòng)方

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

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

示例
下面的例子演示了如何發(fā)送十分之一秒的斷開信號(hào)。
 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屬性
通過(guò)檢查CD 線的狀態(tài)來(lái)查詢是否有載波。CD(Carrier Detect,載波檢測(cè))是調(diào)制解調(diào)器發(fā)送給連接計(jì)算機(jī)的

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

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

號(hào)檢測(cè))。
注意:尤其要注意的是,在主機(jī)應(yīng)用程序比如電子公告板中要偵測(cè)載波信號(hào)的丟失問(wèn)題,因?yàn)楹艚姓唠S時(shí)都有

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

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

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

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

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

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

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

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

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

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

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

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

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

COPYRIGHT(C) 2011 廈門永宏亞得機(jī)電科技有限公司版權(quán)所有(閩ICP備05025945號(hào)) ALL RIGHTS RESERVED?

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