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

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

?? 35.htm

?? 一些簡單的編程例子 都是網(wǎng)頁的形式
?? HTM
字號:
<p>基于Win95的VB5串口通信程序</p>
<p> </p>
<p></p>
<p>山東省水文水資源勘測局   王 軍</p>
<p></p>
<p>  VisualBasic5.0(以下簡稱VB)以其簡單易學(xué)、32位面向?qū)ο蟮某绦蛟O(shè)計(jì)等特點(diǎn),倍受廣大計(jì)算機(jī)開發(fā)者的青睞,已廣泛地應(yīng)用于各個領(lǐng)域;在實(shí)時監(jiān)測系統(tǒng)中串行端口通信是一項(xiàng)基礎(chǔ)功能,因此我們使用VB5編寫了實(shí)時水庫水文自動監(jiān)測系統(tǒng)的后臺機(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ù)雜,需要掌握大量通信知識,其優(yōu)點(diǎn)是可實(shí)現(xiàn)的功能更豐富、應(yīng)用面更廣泛,更適合于編寫較為復(fù)雜的低層次通信程序。采用這種方法編寫串行端口通信程序一般可分為以下幾個過程: </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)大,對一般程序可使用CommConfigDialog函數(shù)以對話框方式設(shè)置波特率、數(shù)據(jù)位、奇偶校驗(yàn)、停止位和流控制方式,并且可以恢復(fù)缺省值。</p>
<p></p>
<p>  3.超時控制</p>
<p></p>
<p>  為了防止意外情況使串口讀寫無休止地等待,Windows95提供了超時設(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、異步(后臺)I/O和事件驅(qū)動I/O。</p>
<p></p>
<p>  5.關(guān)閉串口</p>
<p></p>
<p>  程序的終止可以自動關(guān)閉串口,也可用函數(shù)CloseHandle(),以便釋放所獨(dú)占資源。</p>
<p></p>
<p>VB通信控件Mscomm</p>
<p></p>
<p>  Mscomm控件提供了功能完善的串口數(shù)據(jù)的發(fā)送和接收功能,Mscomm控件具有兩種處理方式:1事件驅(qū)動方式:由Mscomm控件的OnComm事件捕獲并處理通信錯誤及事件;2查詢方式:通過檢查CommEvent屬性的值來判斷事件和錯誤。</p>
<p>  Mscomm控件的通信功能實(shí)現(xiàn),實(shí)際上是調(diào)用了API函數(shù),而API函數(shù)是由Comm.drv解釋并傳給設(shè)備驅(qū)動程序執(zhí)行的,對于VB程序開發(fā)者只需知道Mscomm控件的屬性和事件的用法即可以實(shí)現(xiàn)串口的操作。</p>
<p></p>
<p>  以下是Mscomm控件的主要屬性和方法:</p>
<p></p>
<p>  1)CommPort:設(shè)置或返回串行端口號,其取值范圍為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é)個數(shù),可通過設(shè)置該屬性為0來清除接收緩沖區(qū)。</p>
<p></p>
<p>  6)RThreshold:該屬性為一閥值,它確定當(dāng)接收緩沖區(qū)內(nèi)字節(jié)個數(shù)達(dá)到或超過該值后就產(chǎn)生代碼為MSCOMM_EV_RECEIVE的OnComm事件。</p>
<p></p>
<p>  7)InputLen:設(shè)置或返回接收緩沖區(qū)內(nèi)用Input讀入的個數(shù)。若取0,則INPUT讀取整個緩沖區(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ā)生錯誤或事件,就會引發(fā)OnComm事件并且改變屬性值,由CommEvent屬性代碼反映錯誤類型,在通信程序的設(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,硬件檢測到幀錯誤。</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)串口通信時,首先添加一Mscomm控件到窗體中,該控件一般不在通用工具窗口中,而是需通過菜單項(xiàng)"工程(P)→部件(O)"進(jìn)入選擇窗口,在控件tab頁中選取MicrosoftCommControl5.0,此時工具窗口中出現(xiàn)Mscomm圖標(biāo),即可被使用。</p>
<p>  以下是事件驅(qū)動方式的接收程序的主要部分:</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>  '打開存儲接收數(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è)一次讀入的長度,可根據(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ù)的長度,讀者可根據(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$="檢測到文件結(jié)尾!!!"</p>
<p>    Case comFrame</p>
<p>      ERMsg$="幀出錯!!!"</p>
<p>    Case comRxParity</p>
<p>      ERMsg$="奇偶錯!!!"</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
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产经典视频| 欧美另类久久久品| 亚洲国产高清在线观看视频| 成熟亚洲日本毛茸茸凸凹| 久久久久久久免费视频了| 国产精品一二三区在线| 国产精品久久久久久久久快鸭| 丰满岳乱妇一区二区三区 | 亚洲国产精品国自产拍av| 国产99精品国产| 成人欧美一区二区三区视频网页 | 欧美日本国产一区| 久久成人18免费观看| 国产亚洲精品资源在线26u| av成人免费在线| 香蕉影视欧美成人| 久久众筹精品私拍模特| 成人av网站大全| 香蕉乱码成人久久天堂爱免费| 欧美精品一区二区三区很污很色的| 国产福利一区二区三区视频在线| 亚洲欧美一区二区三区久本道91| 欧美日韩国产在线观看| 免费观看一级特黄欧美大片| 国产亚洲短视频| 欧美综合久久久| 寂寞少妇一区二区三区| 亚洲欧美激情在线| 精品国产成人在线影院| 色88888久久久久久影院野外| 日本成人在线电影网| 国产精品日日摸夜夜摸av| 欧美日韩性生活| 国产.欧美.日韩| 日韩和欧美的一区| 亚洲欧美一区二区在线观看| 精品免费国产一区二区三区四区| 91蜜桃免费观看视频| 美女视频一区在线观看| 国产精品久久久久婷婷| 欧美v国产在线一区二区三区| 91亚洲男人天堂| 国产一区二区不卡老阿姨| 亚洲制服欧美中文字幕中文字幕| 精品国产乱码久久久久久1区2区| 在线视频一区二区免费| 成人免费看黄yyy456| 美女视频黄a大片欧美| 亚洲男人天堂av网| 国产清纯白嫩初高生在线观看91| 欧美日韩1234| 在线观看不卡视频| 99国产精品久久久久| 国产伦精品一区二区三区在线观看| 亚洲午夜久久久| 亚洲三级电影网站| 国产精品无遮挡| 久久久久久久久久久久电影| 欧美一级二级三级乱码| 欧美日韩一区不卡| 色8久久人人97超碰香蕉987| eeuss鲁片一区二区三区| 国产制服丝袜一区| 久久99久久99精品免视看婷婷| 亚洲国产成人porn| 亚洲国产一区二区视频| 亚洲精品中文字幕在线观看| 国产精品久久久久影院| 欧美国产精品中文字幕| 久久久久久久久99精品| 精品久久国产字幕高潮| 日韩一级二级三级| 日韩一二三区不卡| 欧美电视剧免费全集观看 | 久久久久青草大香线综合精品| 欧美喷水一区二区| 欧美一区二区三区在线看| 欧美日韩精品一区二区三区四区 | 青青草伊人久久| 日本欧美一区二区三区乱码| 五月激情综合色| 天堂va蜜桃一区二区三区漫画版| 亚洲高清一区二区三区| 日韩av成人高清| 精品一区二区三区日韩| 国产精品自拍毛片| 丁香六月久久综合狠狠色| 9i看片成人免费高清| 99精品视频在线播放观看| 91国内精品野花午夜精品| 欧美无人高清视频在线观看| 欧美日韩精品免费观看视频| 欧美一区二区三区视频| 久久免费午夜影院| 中文字幕五月欧美| 亚洲曰韩产成在线| 麻豆精品一区二区综合av| 国产一区二区三区观看| 99在线精品观看| 欧美亚洲国产一区二区三区va | 五月天婷婷综合| 精品一区二区综合| 波多野洁衣一区| 欧美美女一区二区在线观看| 日韩视频一区二区三区| 日本一区二区三区久久久久久久久不| 中文一区二区在线观看| 亚洲精品中文在线影院| 久久精品国产99| 不卡视频一二三四| 日韩一区二区三区免费观看| 久久精品视频一区| 亚洲第一搞黄网站| 国产成人夜色高潮福利影视| 欧洲国内综合视频| 久久久亚洲精品一区二区三区| **欧美大码日韩| 美女视频黄免费的久久| 91麻豆123| 精品国产亚洲在线| 一区二区三区国产豹纹内裤在线| 美女www一区二区| 91久久精品一区二区二区| 日韩欧美国产综合一区| 亚洲天堂精品在线观看| 日本aⅴ精品一区二区三区| 99久久精品免费看| 精品国产3级a| 亚洲一区二区三区四区在线| 国产在线国偷精品产拍免费yy| 色视频成人在线观看免| 久久看人人爽人人| 欧美a级一区二区| 91黄色激情网站| 国产精品乱人伦| 精品一区二区免费| 欧美色图第一页| 成人欧美一区二区三区小说 | 国产成人在线免费| 51精品秘密在线观看| 1024国产精品| 狠狠狠色丁香婷婷综合久久五月| 欧美亚洲综合久久| 最新成人av在线| 国产99久久精品| 国产午夜精品一区二区三区四区 | 国产亚洲一区二区三区四区 | eeuss鲁一区二区三区| 日韩精品专区在线影院观看| 亚洲大片在线观看| 色综合一个色综合亚洲| 国产精品三级电影| 成人激情校园春色| 久久久三级国产网站| 蜜乳av一区二区三区| 91精品国产黑色紧身裤美女| 亚洲自拍偷拍麻豆| 欧美三级午夜理伦三级中视频| 亚洲欧美在线aaa| 99re视频精品| 日韩一区在线看| 色综合久久久网| 亚洲三级在线播放| 色系网站成人免费| 17c精品麻豆一区二区免费| 成人午夜私人影院| 中文字幕在线观看一区| 成人免费高清在线观看| 亚洲国产精品精华液ab| 国产91高潮流白浆在线麻豆| 欧美极品美女视频| 成人丝袜高跟foot| 成人免费小视频| 在线观看日韩高清av| 亚洲电影在线免费观看| 欧美丰满高潮xxxx喷水动漫| 视频一区二区中文字幕| 91精品国产色综合久久ai换脸| 日本欧美一区二区三区| 26uuu欧美| 成人黄色在线网站| 一区二区三区美女| 884aa四虎影成人精品一区| 蜜臂av日日欢夜夜爽一区| 久久精品亚洲精品国产欧美kt∨| 国产999精品久久久久久绿帽| 综合在线观看色| 欧美日韩亚洲国产综合| 经典三级在线一区| 亚洲欧洲国产日韩| 欧美日韩中文字幕一区二区| 久久精品国产亚洲高清剧情介绍| 久久久国产综合精品女国产盗摄| 成人爱爱电影网址| 亚洲mv大片欧洲mv大片精品| 精品久久久网站| 91碰在线视频| 免播放器亚洲一区| 国产精品国产三级国产aⅴ原创| 在线观看亚洲专区|