vb串口通訊方式解釋

vb串口通訊方式解釋

ID:10002429

大?。?6.50 KB

頁數(shù):8頁

時間:2018-05-20

vb串口通訊方式解釋_第1頁
vb串口通訊方式解釋_第2頁
vb串口通訊方式解釋_第3頁
vb串口通訊方式解釋_第4頁
vb串口通訊方式解釋_第5頁
資源描述:

《vb串口通訊方式解釋》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、目前,VisualBasic(簡稱VB)已成為WINDOWS系統(tǒng)開發(fā)的主要語言,以其高效、簡單易學(xué)及功能強(qiáng)大的特點(diǎn)越來越為廣大程序設(shè)計人員及用戶所青睞。VB支持面向?qū)ο蟮某绦蛟O(shè)計,具有結(jié)構(gòu)化的事件驅(qū)動編程模式并可以使用無限擴(kuò)增的控件。在VB應(yīng)用程序中可以方便地調(diào)用WINDOWSAPI函數(shù),使得編程效率提高,應(yīng)用功能增強(qiáng)。利用VB提供的這些功能,我們可以有三種方法完成串口通信。一種是用VB提供的具有強(qiáng)大功能的通信控件;另一種方法是調(diào)用WINDOWSAPI函數(shù),使用WINDOWS提供的通信函數(shù)編寫移植性強(qiáng)的應(yīng)用程序;第三是利用文件的輸入/輸

2、出完成,該方法簡便易行,但有一定的局限性。一、利用通信控件(MSCOMM)完成串口通信VB提供了通信控件MSCOMM,文件名為MSCOMM.VBX。該控件可設(shè)置串行通信的數(shù)據(jù)發(fā)送和接收,對串口狀態(tài)及串行通信的信息格式和協(xié)議進(jìn)行設(shè)置。在通信過程中可以觸發(fā)OnComm事件,在該事件過程進(jìn)行數(shù)據(jù)檢驗(yàn)處理及檢錯,還可以通過編程訪問CommEvent屬性來了解通信的情況,進(jìn)行收發(fā)數(shù)據(jù)的處理。每個通信控件對應(yīng)一個串口,如果要訪問多個通信口,則要設(shè)計多個通信控件。1.通信控件的事件及基本屬性(1)事件OnComm:通信控件只提供了一個事件,該事件的觸

3、發(fā)可以對串口的通信事件及錯誤進(jìn)行處理。通過對CommEvent屬性的判斷可知當(dāng)前的通信錯誤和事件,分別對每個Com2mEvent值進(jìn)行編程就完成了對各個錯誤和事件的處理。如:CommEvent=MSCOMM—EV—SEND表示發(fā)送事件。這些信息可從VB提供的常量文件CONSTANT.TXT中查出。(2)屬性CommPort:設(shè)置通信控件與哪個串口相連接,設(shè)置并返回通信口號。Setting:設(shè)置通信的信息格式,為字符型。順序?yàn)?波特率、校驗(yàn)、數(shù)據(jù)位、停止位。PortOpen:布爾型、開關(guān)通信口。InputLen:從接收緩沖區(qū)讀取字符個數(shù)。

4、Input,Output:讀取接收緩沖區(qū)或?qū)懭氚l(fā)送緩沖區(qū)字符以上五種屬性對串口完成基本的設(shè)置和操作,下面的三種屬性是描述如何利用VB提供的事件驅(qū)動機(jī)制來實(shí)現(xiàn)通信。CommEvent:返回通信過程中產(chǎn)生的錯誤信息及事件,了解通信狀況。SThreshold:設(shè)置并返回不觸發(fā)OnComm事件時發(fā)送緩沖區(qū)被允許的最少字符數(shù)。當(dāng)緩沖區(qū)的字符少于設(shè)置的值時,則觸發(fā)OnComm事件,并把CommEvent設(shè)為MSCOMMM—EV—SEND。當(dāng)SThreshold=0則禁止發(fā)送觸發(fā)OnComm事件,當(dāng)SThreshold=1則發(fā)送緩沖區(qū)為空時就觸發(fā)On

5、Comm事件。利用這一屬性,就可完成發(fā)送數(shù)據(jù)后的一系列操作。如:對剛發(fā)送的數(shù)據(jù)進(jìn)行處理,當(dāng)串口是和MODEM通信時,發(fā)送完數(shù)據(jù)后可進(jìn)行拆除線路聯(lián)接、掛機(jī)等操作。RThreshold:設(shè)置并返回不觸發(fā)OnComm事件時接收緩沖區(qū)被允許的最多字符數(shù)。當(dāng)緩沖區(qū)的字符多于設(shè)置的值時,則觸發(fā)OnComm事件,并把CommEvent設(shè)為MSCOMM—EV—RECEIVE,當(dāng)RThreshold=0則禁止接收觸發(fā)OnComm事件,當(dāng)RThreshold=1則接收緩沖區(qū)有一個或更多字符時就觸發(fā)OnComm事件。利用這一屬性,就可完成對串口接收數(shù)據(jù)的處理

6、。2.利用通信控件的實(shí)例SubForm1—load()?form1.show?′設(shè)置COM1?comm1.commport=1?comm1.Setting="9600,o,8,1"′波特率:9600奇校驗(yàn),8位數(shù)據(jù),1位停止位?comm1.Inputlen=0′讀取接收緩沖區(qū)的所有字符?comm1.OutBufferSize=512′設(shè)置發(fā)送緩沖區(qū)為512字節(jié)?comm1.InBufferSize=512′設(shè)置接收緩沖區(qū)為512字節(jié)?comm1.SThreshold=0′禁止發(fā)送事件?comm1.RThreshold=1′每一個字符到接

7、收緩沖區(qū)都觸發(fā)接收事件?′設(shè)置COM2?comm2.commport=2?comm2.Setting="2400,e,8,1"?′波特率:2400偶驗(yàn),8位數(shù)據(jù),1位停止位?comm2.Inputlen=0′讀取接收緩沖區(qū)的所有字符?comm2.OutBufferSize=512′設(shè)置發(fā)送緩沖區(qū)為512字節(jié)?comm2.InBufferSize=512′設(shè)置接收緩沖區(qū)為512字節(jié)?comm2.SThreshold=1′發(fā)送緩沖區(qū)空觸發(fā)發(fā)送事件?comm2.RThreshold=0′禁止接收事件?′打開COM1,COM2?comm1.Po

8、rtopen=True?comm2.Portopen=True?Timer1.interval=5000EndSubSubComm1—OnComm()?DimInbuffasstring?Dimiasint

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。