利用vb通訊控件實(shí)現(xiàn)串行通訊

利用vb通訊控件實(shí)現(xiàn)串行通訊

ID:7782617

大?。?9.50 KB

頁數(shù):6頁

時間:2018-02-25

利用vb通訊控件實(shí)現(xiàn)串行通訊_第1頁
利用vb通訊控件實(shí)現(xiàn)串行通訊_第2頁
利用vb通訊控件實(shí)現(xiàn)串行通訊_第3頁
利用vb通訊控件實(shí)現(xiàn)串行通訊_第4頁
利用vb通訊控件實(shí)現(xiàn)串行通訊_第5頁
資源描述:

《利用vb通訊控件實(shí)現(xiàn)串行通訊》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、串行通訊6利用VB通訊控件實(shí)現(xiàn)串行通訊一、引言每臺計(jì)算機(jī)都有多個串行端口,它們提供了計(jì)算機(jī)與外部串行設(shè)備之間的數(shù)據(jù)傳輸通道。要完成數(shù)據(jù)的傳輸,對Windows而言,可以使用標(biāo)準(zhǔn)的WindowsAPI函數(shù)發(fā)送和接收數(shù)據(jù)。但對一般應(yīng)用人員來說,學(xué)習(xí)和應(yīng)用API進(jìn)行編程,可不是一件簡單的事情。所以從VisualBasic5.0開始,VB提供了面向?qū)ο蟮脑O(shè)計(jì)方法和功能強(qiáng)大的串行通訊控件,而且VB本身具有使用簡單方便、用戶界面友好、編程快捷直觀、實(shí)用性強(qiáng)等諸多優(yōu)點(diǎn),利用它可直接開發(fā)出功能強(qiáng)大的串行通訊控制軟件。將本文介紹的方法與具體的應(yīng)用結(jié)合

2、起來,可編寫出完整的實(shí)用的控制軟件,應(yīng)用到各種實(shí)際場合中。二、VB通訊控件簡介VB提供的串行通訊控件Mscomm屏蔽了通訊過程中的底層操作,在程序設(shè)計(jì)時只需設(shè)置、監(jiān)控Mscomm控件的屬性和事件來完成對串口的初始化和數(shù)據(jù)的輸入輸出工作,使用起來相當(dāng)簡單、方便。其主要屬性如下:1、CommPort該屬性設(shè)置或返回通訊端口號。設(shè)計(jì)時取值范圍為1~16,缺省為1。如設(shè)置為2,即表示當(dāng)前通訊端口是Com2。2、Settings該屬性設(shè)置或返回串口通訊參數(shù),它是一個含有四部分內(nèi)容的字符串,格式為:Mscomm.Settings=“x1,x2,

3、x3,x4”。其缺省值為“9600,N,8,1”表示停止位位數(shù),取值為1,1.5,2。表示數(shù)據(jù)位位數(shù),取值為4,5,6,7,8。表示校驗(yàn)方式,取值為N=不校驗(yàn),E=偶校驗(yàn),O=奇校驗(yàn),S=空格校驗(yàn),M=符號校驗(yàn)。表示波特率,取值為1200,2400,9600等。3、PortOpen該屬性設(shè)置或返回串行端口的狀態(tài),也用來打開和關(guān)閉串口,取值為:True=打開串口,F(xiàn)alse=關(guān)閉串口。串行通訊64、Input它返回并刪除接收緩沖區(qū)中的數(shù)據(jù)流,運(yùn)行時只讀。5、InputLen該屬性設(shè)置或返回Input屬性每次從接收緩沖區(qū)中讀取的字符數(shù)。

4、缺省值為0,表示Input屬性將讀取接收緩沖區(qū)的全部內(nèi)容。6、InBufferCount它返回緩沖區(qū)已接收的字符個數(shù)。運(yùn)行時可設(shè)置為0來清除接收緩沖區(qū)。7、InputMode它用來設(shè)置或返回Input屬性取回?cái)?shù)據(jù)的類型,取值為:0=文本數(shù)據(jù),1=二進(jìn)制數(shù)據(jù)。該屬性對于控制過程中的數(shù)據(jù)流來說相當(dāng)重要。由于大多數(shù)的此類數(shù)據(jù)流均含有控制字符,所以一定要將它設(shè)置為二進(jìn)制數(shù)據(jù)類型。8、Output該屬性用來向發(fā)送緩沖區(qū)寫入控制指令或數(shù)據(jù),它可以發(fā)送文本或二進(jìn)制數(shù)據(jù),但要注意應(yīng)該用字符串變體類型發(fā)送文本數(shù)據(jù),用Byte數(shù)組變體類型發(fā)送二進(jìn)制數(shù)據(jù)

5、。9、OutBufferCount該屬性監(jiān)視發(fā)送緩沖區(qū)中的字節(jié)數(shù)目,將它設(shè)置為0可用來清空發(fā)送緩沖區(qū)。10、RthresHold該屬性用來設(shè)置或返回輸入緩沖區(qū)中存放接收字符的最小數(shù)目,取值為:0=不引發(fā)OnComm事件,n(>=1)=每收到n個字符就引發(fā)OnComm事件。11、CommEvent它返回最近的通訊事件或錯誤的數(shù)字代碼。12、OnComm事件每當(dāng)通訊錯誤或某事件發(fā)生時,產(chǎn)生該事件。三、程序設(shè)計(jì)要實(shí)現(xiàn)串口通訊,在VB開發(fā)環(huán)境下新建一個工程Project1,并加入一個窗體Form和一個程序模塊Module1。串行通訊61、向

6、窗體Form1添加一個通訊控件Mscomm1,一個定時器控件Timer1,兩個命令按鈕:通訊開始按鈕cmdBegin,退出按鈕cmdExit,并編寫相應(yīng)的程序如下:’通訊開始按鈕子程序SubcmdBegin_Click()WithMscomm1.CommPort=2’假定串口通訊為Com2.Settings=“9600,N,8,1”’使用缺省值.InputMode=1’置為二進(jìn)制數(shù)據(jù)類型.PortOpen=True’打開串口If.PortOpen=FalseThenMsgBox“無法打開串口”ElseTimer1.Enabled=T

7、rue’定時器開始工作(開始通訊)EndIfEndWithEndSub’退出按鈕子程序SubcmdExit_Click()Mscomm1.PortOpen=False’關(guān)閉串口Timer1.Enabled=False’關(guān)閉定時器UnloadMeEndSub’定時器子程序SubTimer1_Timer()Comm_Schedule’調(diào)用通訊調(diào)度程序EndSub2、在模塊Module1中聲明兩個不定長Byte串行通訊6型數(shù)組,添加三個過程程序,具體如下:’定義發(fā)送、接收數(shù)組和通訊標(biāo)志PUBLICSendBuf()AsBYTE,ReceB

8、uf()AsBYTEPUBLICComm_flagAsBoolean’發(fā)送數(shù)據(jù)子程序SubSendData_Route()DimSendCountsAsInteger’定義發(fā)送字節(jié)數(shù)變量IFMscomm1.PortOpen=False

當(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)系客服處理。