国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

基于Windows95平臺(tái)的VB5串行端口通信程序的設(shè)計(jì)

2019-11-18 17:35:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
----VisualBasic5.0以其簡(jiǎn)單易學(xué)、32位面向?qū)ο蟪绦蛟O(shè)計(jì)的支持,倍受廣大計(jì)算機(jī)開(kāi)發(fā)者的青睞,已廣泛地應(yīng)用于各個(gè)領(lǐng)域,而在實(shí)時(shí)監(jiān)測(cè)系統(tǒng)中串行端口通信又是一項(xiàng)基礎(chǔ)功能,我們使用VB5編寫(xiě)了實(shí)時(shí)水庫(kù)水文自動(dòng)監(jiān)測(cè)系統(tǒng)的后臺(tái)機(jī)軟件,本文就WINDOWS95環(huán)境中采用VB5設(shè)計(jì)串行端口通信程序進(jìn)行較為詳細(xì)的討論且給予實(shí)例。

----一般用VB開(kāi)發(fā)串行通信程序有兩種方法:一是利用WINDOWS的通信API函數(shù);另一種是采用VB標(biāo)準(zhǔn)控件Mscomm來(lái)實(shí)現(xiàn)。

----一.WINDOWS95的通信API方法

----WINDOWS95中的串口通信API函數(shù)不同于WINDOWS32中的OpenComm、CloseComm、ReadComm、WriteComm,而是采用硬件與文件通用的函數(shù)CreateFile、ReadFile、WriteFile、CloseHandle,該類(lèi)函數(shù)更具有一般性,并且可以用EscapeCommFunction函數(shù)實(shí)現(xiàn)低層次的硬件操作,比如:SETXOFF、CLRDTR等。

----利用API編寫(xiě)串口通信程序較為復(fù)雜,需要掌握的通信知識(shí)多一些,其優(yōu)點(diǎn)是實(shí)現(xiàn)功能上可作的更好、應(yīng)用面更廣泛,更適合于編寫(xiě)較為復(fù)雜的低層次通信程序等。采用這種方法編寫(xiě)串行端口通信程序一般分可為以下幾個(gè)過(guò)程:

----(1)初始化串行端口

----首先用CreateFile函數(shù)打開(kāi)指定串口,置參數(shù)中訪(fǎng)問(wèn)類(lèi)型為GENERIC_READ|GENERIC_WRITE、共享模式為0、創(chuàng)建標(biāo)志為OPEN_EXISTING、
----以下是事件驅(qū)動(dòng)方式的接收程序主要部分:

counter=Timer 10
Do
IfTimer>counterThen
mainfrm.Label1.Caption="正在通信......"
mainfrm.Label1.Refresh
counter=Timer 10
EndIf
DoEvents
Loop
EndSub

----以下為事件處理子程序,flag為一靜態(tài)變量記錄讀取次數(shù)以便改變接收數(shù)據(jù)的長(zhǎng)度,可跟據(jù)實(shí)際需要添加其它處理內(nèi)容:

PrivateSubMSComm1_OnComm()
SelectCaseMSComm1.CommEvent
CasecomEvReceive
Ifflag>246Then
MSComm1.InputLen=0:MSComm1.RThreshold=32
EndIf
buffer=MSComm1.Input
temp=buffer
Print#hfile,temp
counter=Timer 10
DoWhileTimer>counter
DoEvents
Loop
flag=flag 1
CasecomEvEOF
EVMsg$="檢測(cè)到文件結(jié)尾!!!"
CasecomFrame
ERMsg$="楨出錯(cuò)!!!"
CasecomRxParity
ERMsg$="奇偶錯(cuò)!!!"
EndSelect
IfLen(EVMsg$)Then
Text1.Text="Status:"&EVMsg$
ElseIfLen(ERMsg$)Then
Text1.Text="Status:"&ERMsg$
Beep
Ret=MsgBox(ERMsg$,1,"ClickCancel
toquit,OKtoignore.")
MSComm1.PortOpen=False
EndIf
EndSub->


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 千阳县| 靖州| 北碚区| 大同县| 延川县| 纳雍县| 南汇区| 水城县| 台北市| 分宜县| 枣庄市| 夏津县| 遂川县| 衡阳市| 神农架林区| 聊城市| 鄯善县| 三台县| 永定县| 延庆县| 德江县| 称多县| 新民市| 江永县| 新闻| 济源市| 琼结县| 集贤县| 抚州市| 卢龙县| 宝坻区| 马公市| 卓尼县| 垫江县| 通化市| 荔波县| 伊宁市| 马龙县| 西畴县| 姚安县| 忻城县|