" />
所屬欄目:通信論文 發(fā)布日期:2011-08-31 08:14 熱度:
串口通信在數(shù)據(jù)采集中有著廣泛的應(yīng)用,因?yàn)榇谕ㄐ磐ㄐ啪路簡單、靈活方便、數(shù)據(jù)可靠。作為快速開發(fā),利用VB開發(fā)串口通信程序既可以使用MSComm控件也可以調(diào)用WindowsAPI函數(shù)實(shí)現(xiàn)。這里我們使用VB6.0提供的MSComm控件,因?yàn)镸SComm控件的功能和API調(diào)用一樣強(qiáng),甚至更好且使用起來更加簡單,能很方便地實(shí)現(xiàn)所需的串口通信功能。
1.MSComm控件簡介
MSComm控件是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法。具體的來說,它提供了兩種處理通信問題的方法:一是事件驅(qū)動方法,當(dāng)串口通信產(chǎn)生錯誤時(shí),MSComm控件會觸發(fā)OnComm事件,程序員可以在OnComm事件處理函數(shù)中加入自己的處理代碼。另外一種是查詢法。查詢方式實(shí)質(zhì)上還是事件驅(qū)動,但在有些情況下,這種方式顯得更為便捷。在程序的每個(gè)關(guān)鍵功能之后,可以通過檢查CommEvent屬性的值來查詢事件和錯誤。
2.MSComm控件的常用屬性
MSComm控件有很多重要的屬性,但首先必須熟悉幾個(gè)關(guān)鍵屬性。
CommPort 設(shè)置并返回通訊端口號
Settings 以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位
PortOpen 設(shè)置并返回通訊端口的狀態(tài)。也可以打開和關(guān)閉端口
Input 從接收緩沖區(qū)返回和刪除字符
Output 向傳輸緩沖區(qū)寫一個(gè)字符串
3.程序代碼設(shè)計(jì)
利用MSComm控件編寫串口通信程序是十分便利和簡單的。下面我就事件驅(qū)動方式以VB6.0為平臺編寫了PC間串口通信程序的實(shí)例。代碼如下:
'串口初始化
PrivateSubForm_Load()
MSComm1.CommPort=1 '設(shè)置通信端口號為COM1
MSComm1.Settings="9600,n,8,1" '設(shè)置串口參數(shù)
MSComm1.InputMode=0 '接收文本型數(shù)據(jù)
MSComm1.RThreshold=1'接收緩沖區(qū)每收到一個(gè)字符都會使MSComm控件觸發(fā)OnComm事件
MSComm1.PortOpen=True '打開通信端口1
EndSub
'把字符通過串口發(fā)送出去
'啟動定時(shí)器
PrivateSubCmdsend_Click()
IfTextsend.Text=""Then
pp=MsgBox("發(fā)送的數(shù)據(jù)不能為空!",16)
ExitSub
EndIf
MSComm1.Output=Trim(Textsend.Text)
EndSub
'MSComm的OnComm事件程序
'由CommEvent屬性值的不同,將各自的程序代碼寫入相關(guān)的子程序中
'只要RThresold中的設(shè)定字符數(shù)到達(dá)時(shí)便會使得CommEvent屬性值變成comEvReceive
'因此接收的子程序便會被執(zhí)行
PrivateSubMSComm1_OnComm()
Dimbuf$
SelectCaseMSComm1.CommEvent
'通過取代每一個(gè)case表達(dá)式來處理每個(gè)事件與錯誤
CasecomEvCD'CD線的狀態(tài)發(fā)生變化
CasecomEvCTS'CTS線的狀態(tài)發(fā)生變化
CasecomEvDSR'DSR線的狀態(tài)發(fā)生變化
CasecomEvReceive
buf=Trim(MSComm1.Input)'將緩沖區(qū)內(nèi)的數(shù)據(jù)讀入buf變量中
CasecomEvSend
EndSelect
TextReceive.Text=TextReceive.Text&buf
EndSub
'停止程序運(yùn)行
PrivateSubCmdquit_Click()
UnloadMe
EndSub
'關(guān)閉通信端口,
PrivateSubForm_Unload(CancelAsInteger)
MSComm1.PortOpen=False
EndSub
4結(jié)束語
本文通過具體實(shí)例介紹了如何利用VB6.0中的MSComm控件來實(shí)現(xiàn)串口通信。這種串口通信的實(shí)現(xiàn)具有一定的普遍性,掌握了以上基本技術(shù),就可以稍加改變來開發(fā)適合自己的專用通信軟件。
文章標(biāo)題:基于VB6.0的串口通信方法
轉(zhuǎn)載請注明來自:http://m.56st48f.cn/fblw/dianxin/tongxin/10073.html
攝影藝術(shù)領(lǐng)域AHCI期刊推薦《Phot...關(guān)注:106
Nature旗下多學(xué)科子刊Nature Com...關(guān)注:152
中小學(xué)教師值得了解,這些教育學(xué)...關(guān)注:47
2025年寫管理學(xué)論文可以用的19個(gè)...關(guān)注:192
測繪領(lǐng)域科技核心期刊選擇 輕松拿...關(guān)注:64
及時(shí)開論文檢索證明很重要關(guān)注:52
中國水產(chǎn)科學(xué)期刊是核心期刊嗎關(guān)注:54
國際出書需要了解的問題解答關(guān)注:58
合著出書能否評職稱?關(guān)注:48
電信學(xué)有哪些可投稿的SCI期刊,值...關(guān)注:66
通信工程行業(yè)論文選題關(guān)注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關(guān)注:121
評職稱發(fā)論文好還是出書好關(guān)注:68
復(fù)印報(bào)刊資料重要轉(zhuǎn)載來源期刊(...關(guān)注:51
英文期刊審稿常見的論文狀態(tài)及其...關(guān)注:69
Web of Science 核心合集期刊評估...關(guān)注:59
電子信息論文范文
智能科學(xué)技術(shù)論文 廣播電視論文 光電技術(shù)論文 計(jì)算機(jī)信息管理論文 計(jì)算機(jī)網(wǎng)絡(luò)論文 計(jì)算機(jī)應(yīng)用論文 通信論文 信息安全論文 微電子應(yīng)用論文 電子技術(shù)論文 生物醫(yī)學(xué)工程論文 軟件開發(fā)論文
SCI期刊分析
copyright © m.56st48f.cn, All Rights Reserved
搜論文知識網(wǎng) 冀ICP備15021333號-3