" />

色偷偷伊人-色偷偷综合-色无五月-色香蕉影院-色亚洲影院

基于VB6.0的串口通信方法

所屬欄目:通信論文 發(fā)布日期:2011-08-31 08:14 熱度:

  串口通信在數(shù)據(jù)采集中有著廣泛的應(yīng)用,因?yàn)榇谕ㄐ磐ㄐ啪路簡(jiǎ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),甚至更好且使用起來(lái)更加簡(jiǎn)單,能很方便地實(shí)現(xiàn)所需的串口通信功能。
  1.MSComm控件簡(jiǎn)介
  MSComm控件是Microsoft公司提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過(guò)串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。具體的來(lái)說(shuō),它提供了兩種處理通信問(wèn)題的方法:一是事件驅(qū)動(dòng)方法,當(dāng)串口通信產(chǎn)生錯(cuò)誤時(shí),MSComm控件會(huì)觸發(fā)OnComm事件,程序員可以在OnComm事件處理函數(shù)中加入自己的處理代碼。另外一種是查詢法。查詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。在程序的每個(gè)關(guān)鍵功能之后,可以通過(guò)檢查CommEvent屬性的值來(lái)查詢事件和錯(cuò)誤。
  2.MSComm控件的常用屬性
  MSComm控件有很多重要的屬性,但首先必須熟悉幾個(gè)關(guān)鍵屬性。
  CommPort 設(shè)置并返回通訊端口號(hào)
  Settings 以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位
  PortOpen 設(shè)置并返回通訊端口的狀態(tài)。也可以打開和關(guān)閉端口
  Input 從接收緩沖區(qū)返回和刪除字符
  Output 向傳輸緩沖區(qū)寫一個(gè)字符串
  3.程序代碼設(shè)計(jì)
  利用MSComm控件編寫串口通信程序是十分便利和簡(jiǎn)單的。下面我就事件驅(qū)動(dòng)方式以VB6.0為平臺(tái)編寫了PC間串口通信程序的實(shí)例。代碼如下:
  
  '串口初始化
  PrivateSubForm_Load()
  MSComm1.CommPort=1 '設(shè)置通信端口號(hào)為COM1
  MSComm1.Settings="9600,n,8,1" '設(shè)置串口參數(shù)
  MSComm1.InputMode=0 '接收文本型數(shù)據(jù)
  MSComm1.RThreshold=1'接收緩沖區(qū)每收到一個(gè)字符都會(huì)使MSComm控件觸發(fā)OnComm事件
  MSComm1.PortOpen=True '打開通信端口1
  EndSub
  '把字符通過(guò)串口發(fā)送出去
  '啟動(dòng)定時(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í)便會(huì)使得CommEvent屬性值變成comEvReceive
  '因此接收的子程序便會(huì)被執(zhí)行
  PrivateSubMSComm1_OnComm()
  Dimbuf$
  SelectCaseMSComm1.CommEvent
  '通過(guò)取代每一個(gè)case表達(dá)式來(lái)處理每個(gè)事件與錯(cuò)誤
  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é)束語(yǔ)
  本文通過(guò)具體實(shí)例介紹了如何利用VB6.0中的MSComm控件來(lái)實(shí)現(xiàn)串口通信。這種串口通信的實(shí)現(xiàn)具有一定的普遍性,掌握了以上基本技術(shù),就可以稍加改變來(lái)開發(fā)適合自己的專用通信軟件。

文章標(biāo)題:基于VB6.0的串口通信方法

轉(zhuǎn)載請(qǐng)注明來(lái)自:http://m.anghan.cn/fblw/dianxin/tongxin/10073.html

相關(guān)問(wèn)題解答

SCI服務(wù)

搜論文知識(shí)網(wǎng) 冀ICP備15021333號(hào)-3

主站蜘蛛池模板: 欧美精品第二页 | 99pao在线视频精品免费 | 日韩精品区 | 国产xx做受视频国语对白 | 一级毛片观看 | 在线视频亚洲欧美 | 久久免费99精品国产自在现线 | 99re最新地址 | 高清午夜毛片 | 一级毛片一级毛片一级毛片一级毛片 | 久草在线视频网站 | 一级特黄毛片 | 站长工具亚洲 | 欧美一区二区在线播放 | 91精品国产免费网站 | 看一级特黄a大片日本片黑人 | 九九九好热在线 | 亚洲国产欧美日韩第一香蕉 | 又黄又爽一线毛片免费观看 | 中文字幕欧美一区 | 国产成人精品999在线观看 | 亚洲免费黄色网址 | 免费午夜不卡毛片 | 亚洲精品欧洲久久婷婷99 | 国产欧美日韩在线不卡第一页 | 久久99精品久久久久久欧洲站 | 免费观看很黄很色的大片 | 亚洲在线综合 | 杨幂丝袜国产福利视频 | 成人黄色片视频 | 国产黄色一级网站 | 免费无遮挡嘿嘿嘿视频动态 | 高清一区二区三区视频 | 国产性高清在线观看 | 国产日韩欧美视频在线 | 黄影院 | 在线啊v | 精品国产日韩一区三区 | 国产欧美在线不卡 | 自拍偷拍国语对白 | 免费在线看黄视频 |