亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 35.htm

?? vb功能實(shí)例介紹。詳細(xì)、很好的實(shí)例說明。
?? HTM
字號(hào):
<p>基于Win95的VB5串口通信程序</p>
<p> </p>
<p></p>
<p>山東省水文水資源勘測(cè)局   王 軍</p>
<p></p>
<p>  VisualBasic5.0(以下簡(jiǎn)稱VB)以其簡(jiǎn)單易學(xué)、32位面向?qū)ο蟮某绦蛟O(shè)計(jì)等特點(diǎn),倍受廣大計(jì)算機(jī)開發(fā)者的青睞,已廣泛地應(yīng)用于各個(gè)領(lǐng)域;在實(shí)時(shí)監(jiān)測(cè)系統(tǒng)中串行端口通信是一項(xiàng)基礎(chǔ)功能,因此我們使用VB5編寫了實(shí)時(shí)水庫水文自動(dòng)監(jiān)測(cè)系統(tǒng)的后臺(tái)機(jī)軟件。本文就Windows95環(huán)境中采用VB5設(shè)計(jì)串行端口通信程序進(jìn)行討論并給出實(shí)例。</p>
<p></p>
<p>  一般用VB開發(fā)串行通信程序有兩種方法:一是利用Windows的通信API函數(shù);另一種是采用VB標(biāo)準(zhǔn)控件Mscomm來實(shí)現(xiàn)。</p>
<p></p>
<p>Windows95的通信API</p>
<p></p>
<p>  Windows95中的串口通信API函數(shù)不同于Windows3.x中的OpenComm、CloseComm、ReadComm、WriteComm,而是采用硬件與文件通用的函數(shù)CreateFile、ReadFile、WriteFile、CloseHandle,該類函數(shù)更具有一般性,并且可以用EscapeCommFunction函數(shù)實(shí)現(xiàn)底層硬件操作,比如:SETXOFF、CLRDTR等。</p>
<p>  利用API編寫串口通信程序較為復(fù)雜,需要掌握大量通信知識(shí),其優(yōu)點(diǎn)是可實(shí)現(xiàn)的功能更豐富、應(yīng)用面更廣泛,更適合于編寫較為復(fù)雜的低層次通信程序。采用這種方法編寫串行端口通信程序一般可分為以下幾個(gè)過程: </p>
<p></p>
<p>  1.初始化串行端口</p>
<p></p>
<p>  首先用CreateFile函數(shù)打開指定串口,置參數(shù)中訪問類型為GENERIC_READ|GENERIC_WRITE、共享模式為0、創(chuàng)建標(biāo)志為OPEN_EXISTING、模板句柄為NULL。</p>
<p></p>
<p>  2.配置串口</p>
<p></p>
<p>  Windows95的串口配置比Windows3.x較為復(fù)雜,但其功能更強(qiáng)大,對(duì)一般程序可使用CommConfigDialog函數(shù)以對(duì)話框方式設(shè)置波特率、數(shù)據(jù)位、奇偶校驗(yàn)、停止位和流控制方式,并且可以恢復(fù)缺省值。</p>
<p></p>
<p>  3.超時(shí)控制</p>
<p></p>
<p>  為了防止意外情況使串口讀寫無休止地等待,Windows95提供了超時(shí)設(shè)置,這是由COMMTIMEOUTS結(jié)構(gòu)定義的,通過調(diào)用GetCcommTimeOuts函數(shù)獲得當(dāng)前的設(shè)置,用SetCommTimeOuts函數(shù)來完成設(shè)置。</p>
<p></p>
<p>  4.數(shù)據(jù)傳輸</p>
<p></p>
<p>  讀寫串行端口與讀寫文件采用的函數(shù)相同,即ReadFile、WriteFile,讀寫操作可分四種方式:查詢方式、同步I/O、異步(后臺(tái))I/O和事件驅(qū)動(dòng)I/O。</p>
<p></p>
<p>  5.關(guān)閉串口</p>
<p></p>
<p>  程序的終止可以自動(dòng)關(guān)閉串口,也可用函數(shù)CloseHandle(),以便釋放所獨(dú)占資源。</p>
<p></p>
<p>VB通信控件Mscomm</p>
<p></p>
<p>  Mscomm控件提供了功能完善的串口數(shù)據(jù)的發(fā)送和接收功能,Mscomm控件具有兩種處理方式:1事件驅(qū)動(dòng)方式:由Mscomm控件的OnComm事件捕獲并處理通信錯(cuò)誤及事件;2查詢方式:通過檢查CommEvent屬性的值來判斷事件和錯(cuò)誤。</p>
<p>  Mscomm控件的通信功能實(shí)現(xiàn),實(shí)際上是調(diào)用了API函數(shù),而API函數(shù)是由Comm.drv解釋并傳給設(shè)備驅(qū)動(dòng)程序執(zhí)行的,對(duì)于VB程序開發(fā)者只需知道Mscomm控件的屬性和事件的用法即可以實(shí)現(xiàn)串口的操作。</p>
<p></p>
<p>  以下是Mscomm控件的主要屬性和方法:</p>
<p></p>
<p>  1)CommPort:設(shè)置或返回串行端口號(hào),其取值范圍為1~99,缺省為1。</p>
<p></p>
<p>  2)Setting設(shè)置或返回串行端口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位數(shù)、停止位。如:Mscomm.Setting="9600,N,8,1"。</p>
<p></p>
<p>  3)PortOpen:打開或關(guān)閉串行端口,格式為:Mscomm.PortOpen={TRUE|FALSE}。</p>
<p></p>
<p>  4)InBufferSize:設(shè)置或返回接收緩沖區(qū)的大小,缺省為1024字節(jié)。</p>
<p></p>
<p>  5)InBufferCount:返回接收緩沖區(qū)內(nèi)的等待讀取的字節(jié)個(gè)數(shù),可通過設(shè)置該屬性為0來清除接收緩沖區(qū)。</p>
<p></p>
<p>  6)RThreshold:該屬性為一閥值,它確定當(dāng)接收緩沖區(qū)內(nèi)字節(jié)個(gè)數(shù)達(dá)到或超過該值后就產(chǎn)生代碼為MSCOMM_EV_RECEIVE的OnComm事件。</p>
<p></p>
<p>  7)InputLen:設(shè)置或返回接收緩沖區(qū)內(nèi)用Input讀入的個(gè)數(shù)。若取0,則INPUT讀取整個(gè)緩沖區(qū)的內(nèi)容。</p>
<p></p>
<p>  8)Input:該屬性表示從接收緩沖區(qū)移走一串字符。</p>
<p></p>
<p>  9)OutBufferSize:設(shè)置或返回發(fā)送緩沖區(qū),缺省為512字節(jié)。</p>
<p></p>
<p>  10)OutBufferCounter:返回發(fā)送緩沖區(qū)內(nèi)等待發(fā)送的字符數(shù),可用來清空緩沖區(qū)。</p>
<p></p>
<p>  11)Output:向發(fā)送緩沖區(qū)傳送一字符串。</p>
<p></p>
<p>  12)EOFEnable:若置TRUE,則當(dāng)輸入中出現(xiàn)EOF,就停止輸入并產(chǎn)生OnComm事件。</p>
<p></p>
<p>  如果在通信過程中發(fā)生錯(cuò)誤或事件,就會(huì)引發(fā)OnComm事件并且改變屬性值,由CommEvent屬性代碼反映錯(cuò)誤類型,在通信程序的設(shè)計(jì)中可根據(jù)該屬性值來執(zhí)行不同的操作,以下是部分屬性常數(shù)值及其含義:</p>
<p></p>
<p>  1)ComEvSend:其值為1,發(fā)送緩沖區(qū)的內(nèi)容少于SThreshold指定的值。</p>
<p></p>
<p>  2)ComEvReceive:其值為2,接收緩沖區(qū)內(nèi)字符數(shù)達(dá)到RThreshold值,該事件在緩沖區(qū)中數(shù)據(jù)被移走前將持續(xù)產(chǎn)生。</p>
<p></p>
<p>  3)ComEventFrame:其值為1004,硬件檢測(cè)到幀錯(cuò)誤。</p>
<p></p>
<p>  4)ComEventRxOver:其值為1008,接收緩沖區(qū)溢出。</p>
<p></p>
<p>  5)ComEventTxFull:其值為1010,發(fā)送緩沖區(qū)溢出。</p>
<p></p>
<p>  6)ComEventRxParity:其值為1009,奇偶校驗(yàn)。</p>
<p></p>
<p>  7)ComEvEOF:其值為7,接收數(shù)據(jù)中出現(xiàn)文件結(jié)束(ASCII碼為26)字符。</p>
<p></p>
<p>程序樣例</p>
<p></p>
<p>  采用Mscomm控件實(shí)現(xiàn)串口通信時(shí),首先添加一Mscomm控件到窗體中,該控件一般不在通用工具窗口中,而是需通過菜單項(xiàng)"工程(P)→部件(O)"進(jìn)入選擇窗口,在控件tab頁中選取MicrosoftCommControl5.0,此時(shí)工具窗口中出現(xiàn)Mscomm圖標(biāo),即可被使用。</p>
<p>  以下是事件驅(qū)動(dòng)方式的接收程序的主要部分:</p>
<p></p>
<p>PrivateSubgetdatafromserial_Click()</p>
<p>  CommonDialog1.InitDir="c:\temp"</p>
<p>  CommonDialog1.ShowSave</p>
<p>  mainfrm.MSComm1.CommPort=1</p>
<p>  hfile=FreeFile</p>
<p>  '打開存儲(chǔ)接收數(shù)據(jù)的文件</p>
<p>  Open CommonDialog1.filename For Output As #hfile</p>
<p>  '設(shè)接收緩沖區(qū)的大小,可按量確定</p>
<p>  mainfrm.MSComm1.InBufferSize=4096</p>
<p>  If Not mainfrm.MSComm1.PortOpen Then'打開串口</p>
<p>  mainfrm.MSComm1.PortOpen=True</p>
<p>  End If</p>
<p>  If Err Then</p>
<p>  MsgBox"Communcationportcannotbeopened!!"</p>
<p>  '清接收緩沖區(qū)</p>
<p>  mainfrm.MSComm1.InBufferCount=0</p>
<p>  '設(shè)一次讀入的長(zhǎng)度,可根據(jù)數(shù)據(jù)格式設(shè)置</p>
<p>  mainfrm.MSComm1.InputLen=77</p>
<p>  '設(shè)置接收事件觸發(fā)的閥值</p>
<p>  mainfrm.MSComm1.RThreshold=77</p>
<p>  counter=Timer+10</p>
<p>  Do</p>
<p>   If Timer>counter Then</p>
<p>    mainfrm.Label1.Caption="正在通信......"</p>
<p>    mainfrm.Label1.Refresh</p>
<p>    counter=Timer+10</p>
<p>   End If</p>
<p>   DoEvents</p>
<p>  Loop</p>
<p>End Sub</p>
<p></p>
<p>  以下為事件處理子程序,flag為一靜態(tài)變量記錄讀取次數(shù),以便改變接收數(shù)據(jù)的長(zhǎng)度,讀者可根據(jù)實(shí)際需要添加其它處理內(nèi)容:</p>
<p></p>
<p>Private Sub MSComm1_OnComm()</p>
<p>  Select Case MSComm1.CommEvent</p>
<p>    Case comEvReceive</p>
<p>      If flag>246 Then</p>
<p>        MSComm1.InputLen=0:MSComm1.RThreshold=32</p>
<p>      End If</p>
<p>      buffer=MSComm1.Input</p>
<p>      temp=buffer</p>
<p>      Print #hfile,temp</p>
<p>      counter=Timer+10</p>
<p>      Do While Timer>counter</p>
<p>        DoEvents</p>
<p>      Loop</p>
<p>      flag=flag+1</p>
<p>    Case comEvEOF</p>
<p>      EVMsg$="檢測(cè)到文件結(jié)尾!!!"</p>
<p>    Case comFrame</p>
<p>      ERMsg$="幀出錯(cuò)!!!"</p>
<p>    Case comRxParity</p>
<p>      ERMsg$="奇偶錯(cuò)!!!"</p>
<p>  End Select</p>
<p>  If Len(EVMsg$) Then</p>
<p>    Text1.Text="Status:"&EVMsg$</p>
<p>  ElseIf Len(ERMsg$) Then</p>
<p>    Text1.Text="Status:"&ERMsg$</p>
<p>    Beep</p>
<p>    Ret=MsgBox(ERMsg$,1,"ClickCanceltoquit,OKtoignore.")</p>
<p>    MSComm1.PortOpen=False</p>
<p>  End If</p>
<p>End Sub</p>
<p></p>
<p> </p>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线影院| 亚洲色图.com| 一本色道久久加勒比精品| 丝袜诱惑亚洲看片| 国产无人区一区二区三区| 欧美日韩专区在线| 成人听书哪个软件好| 精品一区二区三区视频 | 欧美亚洲日本国产| 国产一区二区网址| 午夜欧美在线一二页| 中文字幕日本乱码精品影院| 日韩欧美亚洲一区二区| 91福利区一区二区三区| 成人18精品视频| 国产一区二区三区久久久| 日韩电影在线观看网站| 成人免费在线播放视频| 日本一二三不卡| 久久综合色综合88| 日韩视频中午一区| 欧美日韩国产高清一区二区| 一本高清dvd不卡在线观看| 成人晚上爱看视频| 国产精品99久久久久久似苏梦涵 | 91麻豆成人久久精品二区三区| 九色porny丨国产精品| 日本美女视频一区二区| 亚洲v日本v欧美v久久精品| 亚洲自拍偷拍综合| 亚洲一区二区中文在线| 一二三区精品福利视频| 色偷偷久久人人79超碰人人澡 | 精品国产污网站| 欧美日韩美女一区二区| 色婷婷精品大在线视频| 91网站最新地址| 日韩二区三区在线观看| 国产一级精品在线| 国产精品乡下勾搭老头1| 午夜精品久久一牛影视| 久久伊人中文字幕| 欧美三片在线视频观看 | 经典三级一区二区| 欧美日韩精品免费观看视频| 精品国产麻豆免费人成网站| 国产福利精品导航| 国产在线一区二区综合免费视频| 久久成人18免费观看| 另类小说视频一区二区| 国产精品中文字幕日韩精品| 国产精品系列在线观看| 欧美日韩国产美女| 欧美日韩专区在线| 色婷婷综合久久久中文字幕| 久久99精品久久久| 国产久卡久卡久卡久卡视频精品| 精品一二三四区| 精品卡一卡二卡三卡四在线| 国产尤物一区二区| 久久精品网站免费观看| 亚洲3atv精品一区二区三区| 蜜桃av一区二区在线观看| 亚洲一线二线三线视频| 一区二区三区小说| 欧美色精品天天在线观看视频| 久久精品一区二区三区不卡| 日韩免费电影网站| 欧美精品一区在线观看| 久久一区二区三区四区| 精品久久久久久亚洲综合网 | 色婷婷国产精品| 午夜激情一区二区三区| 亚洲精品国产精品乱码不99 | 国产亚洲精久久久久久| 综合久久久久久久| 亚洲成国产人片在线观看| 日韩精品免费专区| 亚洲国产综合人成综合网站| 亚洲精品第1页| 亚洲伊人伊色伊影伊综合网| 五月婷婷激情综合网| 午夜欧美视频在线观看| 丰满亚洲少妇av| 91亚洲国产成人精品一区二三| jlzzjlzz亚洲女人18| 不卡高清视频专区| 欧美日本一道本| 久久综合久久综合久久| 久久―日本道色综合久久| 亚洲图片激情小说| 亚洲欧洲无码一区二区三区| 亚洲精品伦理在线| 91免费在线播放| 久久先锋影音av鲁色资源网| 一区二区三区加勒比av| 蜜臀av性久久久久av蜜臀妖精 | 91在线视频在线| 久久免费午夜影院| 香蕉加勒比综合久久| 日韩精品91亚洲二区在线观看| 亚洲精品欧美激情| 午夜精品久久久久久不卡8050| 亚洲最大成人网4388xx| 国产在线一区二区| 国产精品人人做人人爽人人添 | 欧美一区二区三区四区高清| 精品剧情在线观看| 亚洲愉拍自拍另类高清精品| 国产精品1024| 欧美日韩的一区二区| 日韩美女视频19| 国产精品综合av一区二区国产馆| 欧美巨大另类极品videosbest | 夫妻av一区二区| 精品噜噜噜噜久久久久久久久试看| 亚州成人在线电影| 97精品久久久久中文字幕| 久久久久高清精品| 久久国产尿小便嘘嘘尿| 欧美日韩精品免费| 一区二区高清免费观看影视大全| 99久久99久久精品免费观看| 国产婷婷色一区二区三区| 韩国三级在线一区| 欧美成人精品1314www| 青青草原综合久久大伊人精品 | 一个色妞综合视频在线观看| 国产精品福利电影一区二区三区四区| 国产一区二区在线影院| 国产精品美女久久久久久久久久久 | 亚洲国产中文字幕| 欧美在线免费观看亚洲| 秋霞国产午夜精品免费视频| 最新国产の精品合集bt伙计| 精品视频一区二区三区免费| 国产精品剧情在线亚洲| 成人av手机在线观看| 欧美激情资源网| 白白色 亚洲乱淫| 国产精品青草综合久久久久99| 国产suv精品一区二区三区| 久久综合色婷婷| 国产精品午夜春色av| 亚洲猫色日本管| 中文字幕欧美国产| 欧美三级视频在线| 日本亚洲免费观看| 亚洲国产精品久久不卡毛片| 欧美精品久久久久久久多人混战| 成人精品免费视频| 国产成人精品www牛牛影视| 国产精品电影一区二区三区| 日韩西西人体444www| 欧美精品乱码久久久久久| 亚洲成人午夜影院| 欧美精品日日鲁夜夜添| 免费人成黄页网站在线一区二区| 日韩小视频在线观看专区| 国产电影一区在线| 亚洲男人的天堂在线观看| 欧美日韩久久久久久| 久久不见久久见免费视频1| 久久精品免视看| 在线免费av一区| 麻豆91免费观看| 国产精品久久久一本精品| 欧美日韩中字一区| 极品美女销魂一区二区三区免费| 国产精品三级久久久久三级| 欧洲国内综合视频| 国产另类ts人妖一区二区| 亚洲免费视频中文字幕| 欧美成人a∨高清免费观看| 成人动漫一区二区在线| 日韩和欧美一区二区三区| 久久久国产一区二区三区四区小说| 99精品1区2区| 奇米一区二区三区av| 亚洲色图一区二区| 亚洲精品在线观看视频| 91激情五月电影| 国产精品一区二区三区四区| 一区二区三区在线视频免费| 精品黑人一区二区三区久久| 在线亚洲免费视频| 国产精品一区专区| 五月天精品一区二区三区| 中文字幕日韩av资源站| 精品av久久707| 欧美吞精做爰啪啪高潮| 国产在线精品一区二区不卡了 | 日本视频一区二区三区| 青娱乐精品视频在线| 青青草91视频| 99在线精品免费| 日韩一区和二区| 亚洲精品高清在线| 国产麻豆精品在线观看| 欧美日韩一级视频|