狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

基于Win95的VB5串口通信程序

基于Win95的VB5串口通信程序

更新時間:2024-04-08 文章作者:未知 信息來源:網絡 閱讀次數:

---- Visual Basic5.0( 以 下 簡 稱VB) 以 其 簡 單 易 學、32 位面向對象的程序設計等特點, 倍受廣大計算機開發者的青睞, 已泛地應用于各個領域; 在實時監測系統中串行端口通信 是 一 項 基 礎 功 能, 因 此 我 們 使 用VB5 編 寫 了 實 時 水 庫 水 文 自 動 監 測 系 統 的 后 臺 機 軟 件。 本 文 就Windows 95 環 境 中 采 用VB5 設 計 串 行 端 口 通 信 程 序 進 行 討 論 并 給 出 實 例。

---- 一 般 用VB 開 發 串 行 通 信 程 序 有 兩 種 方 法: 一 是 利 用Windows 的 通 信API 函 數; 另 一 種 是 采 用VB 標 準 控 件Mscomm 來 實 現。

Windows 95 的 通 信API
---- Windows 95 中 的 串 口 通 信API 函 數 不 同 于Windows3.x 中 的OpenComm、CloseComm、ReadComm、WriteComm, 而 是 采 用 硬 件 與 文 件 通 用 的 函 數CreateFile、ReadFile、WriteFile、CloseHandle, 該 類 函 數 更 具 有 一 般 性, 并 且 可 以 用EscapeCommFunction 函 數 實 現 底 層 硬 件 操 作, 比 如:SETXOFF、 CLRDTR 等。
---- 利 用API 編 寫 串 口 通 信 程 序 較 為 復 雜, 需 要 掌 握 大 量 通 信 知 識, 其 優 點 是 可 實 現 的 功 能 更 豐 富、 應 用 面 更 廣 泛,
更 適 合 于 編 寫 較 為 復 雜 的 低 層 次 通 信 程 序。 采 用 這 種 方 法 編 寫 串 行 端 口 通 信 程 序 一 般 可 分 為 以 下 幾 個 過 程:

---- 1. 初 始 化 串 行 端 口

---- 首 先 用CreateFile 函 數 打 開 指 定 串 口, 置 參 數 中 訪 問 類 型 為GENERIC_READ |GENERIC_WRITE、 共 享 模 式 為0、 創 建 標 志 為
OPEN_EXISTING、 模 板 句 柄 為NULL。

---- 2. 配 置 串 口

---- Windows 95 的 串 口 配 置 比Windows 3.x 較 為 復 雜, 但 其 功 能 更 強 大, 對 一 般 程 序 可 使 用CommConfigDialog 函 數 以 對 話 框 方 式 設 置 波 特 率、 數 據 位、 奇 偶 校 驗、 停 止 位 和 流 控 制 方 式,并 且 可 以 恢 復 缺 省 值。

---- 3. 超 時 控 制

---- 為 了 防 止 意 外 情 況 使 串 口 讀 寫 無 休 止 地 等 待,Windows 95 提 供 了 超 時 設 置, 這 是 由COMMTIMEOUTS 結 構 定 義 的, 通 過 調 用GetCcommTimeOuts 函 數 獲 得 當 前 的 設 置, 用SetCommTimeOuts 函 數 來 完 成 設 置。

---- 4. 數 據 傳 輸

---- 讀 寫 串 行 端 口 與 讀 寫 文 件 采 用 的 函 數 相 同, 即ReadFile、WriteFile, 讀 寫 操 作 可 分 四 種 方 式: 查 詢 方 式、 同 步I/O、 異 步( 后 臺)I/O 和 事 件 驅 動I/O。

---- 5. 關 閉 串 口

---- 程 序 的 終 止 可 以 自 動 關 閉 串 口, 也 可 用 函 數CloseHandle(), 以 便 釋 放 所 獨 占 資 源。

VB 通 信 控 件Mscomm
---- Mscomm 控 件 提 供 了 功 能 完 善 的 串 口 數 據 的 發 送 和 接 收 功 能,Mscomm 控 件 具 有 兩 種 處 理 方 式: 1 事 件 驅 動 方 式: 由 Mscomm 控 件 的OnComm 事 件 捕 獲 并 處 理 通 信 錯 誤 及 事 件;2 查 詢 方 式: 通 過 檢 查CommEvent 屬 性 的 值 來 判 斷 事 件 和 錯 誤。
---- Mscomm 控 件 的 通 信 功 能 實 現, 實 際 上 是 調 用 了API 函 數,而API 函 數 是 由Comm.drv 解 釋 并 傳 給 設 備 驅 動 程 序 執 行 的, 對 于VB 程 序 開 發 者 只 需 知 道Mscomm 控 件 的 屬 性 和 事 件 的 用 法 即 可 以 實 現 串 口 的 操 作。

---- 以 下 是Mscomm 控 件 的 主 要 屬 性 和 方 法:

---- 1)CommPort: 設 置 或 返 回 串 行 端 口 號, 其 取 值 范 圍 為1 ~99,缺 省 為1。

---- 2) Setting 設 置 或 返 回 串 行 端 口 的 波 特 率、 奇 偶 校 驗 位、數 據 位 數、 停 止 位。 如:Mscomm.Setting=“9600,N,8,1”。

---- 3)PortOpen: 打 開 或 關 閉 串 行 端 口, 格 式 為:Mscomm.PortOpen={TRUE|FALSE}。

---- 4) InBufferSize: 設 置 或 返 回 接 收 緩 沖 區 的 大 小, 缺 省 為1024 字 節。

---- 5) InBufferCount: 返 回 接 收 緩 沖 區 內 的 等 待 讀 取 的 字 節 個 數, 可 通 過 設 置 該 屬 性 為0 來 清 除 接 收 緩 沖 區。

---- 6) RThreshold: 該 屬 性 為 一 閥 值, 它 確 定 當 接 收 緩 沖 區 內 字 節 個 數 達 到 或 超 過 該 值 后 就 產 生 代 碼 為MSCOMM_EV_RECEIVE 的OnComm 事 件。

---- 7) InputLen: 設 置 或 返 回 接 收 緩 沖 區 內 用Input 讀 入 的 個 數。 若 取0, 則INPUT 讀 取 整 個 緩 沖 區 的 內 容。

---- 8) Input: 該 屬 性 表 示 從 接 收 緩 沖 區 移 走 一 串 字 符。

---- 9) OutBufferSize: 設 置 或 返 回 發 送 緩 沖 區, 缺 省 為512 字 節。


---- 10) OutBufferCounter: 返 回 發 送 緩 沖 區 內 等 待 發 送 的 字 符 數, 可 用 來 清 空 緩 沖 區。

---- 11) Output: 向 發 送 緩 沖 區 傳 送 一 字 符 串。

---- 12) EOFEnable: 若 置TRUE, 則 當 輸 入 中 出 現EOF, 就 停 止 輸 入 并 產 生OnComm 事 件。

---- 如 果 在 通 信 過 程 中 發 生 錯 誤 或 事 件, 就 會 引 發OnComm 事 件 并 且 改 變 屬 性 值, 由CommEvent 屬 性 代 碼 反 映 錯 誤 類 型, 在 通 信 程 序 的 設 計 中 可 根 據 該 屬 性 值 來 執 行 不 同 的 操 作, 以 下 是 部 分 屬 性 常 數 值 及 其 含 義:

---- 1)ComEvSend: 其 值 為1, 發 送 緩 沖 區 的 內 容 少 于SThreshold 指 定 的 值。

---- 2) ComEvReceive: 其 值 為2, 接 收 緩 沖 區 內 字 符 數 達 到 RThreshold 值, 該 事 件 在 緩 沖 區 中 數 據 被 移 走 前 將 持 續 產 生。


---- 3) ComEventFrame: 其 值 為1004, 硬 件 檢 測 到 幀 錯 誤。

---- 4) ComEventRxOver: 其 值 為1008, 接 收 緩 沖 區 溢 出。

---- 5) ComEventTxFull: 其 值 為1010, 發 送 緩 沖 區 溢 出。

---- 6) ComEventRxParity: 其 值 為1009, 奇 偶 校 驗。

---- 7) ComEvEOF: 其 值 為7, 接 收 數 據 中 出 現 文 件 結 束(ASCII 碼 為 26) 字 符。

程 序 樣 例
---- 采 用Mscomm 控 件 實 現 串 口 通 信 時, 首 先 添 加 一Mscomm 控 件 到 窗 體 中, 該 控 件 一 般 不 在 通 用 工 具 窗 口 中, 而 是 需 通 過 菜 單 項“ 工 程(P) → 部 件(O)” 進 入 選 擇 窗 口, 在 控 件tab 頁 中 選 取Microsoft Comm Control 5.0 , 此 時 工 具 窗 口 中 出 現Mscomm 圖 標, 即 可 被 使 用。
---- 以 下 是 事 件 驅 動 方 式 的 接 收 程 序 的 主 要 部 分: Private Sub getdatafromserial_Click()

---- CommonDialog1.InitDir = “c:\temp"

---- CommonDialog1.ShowSave

---- mainfrm.MSComm1.CommPort=1

---- hfile = FreeFile

---- ’ 打 開 存 儲 接 收 數 據 的 文 件

---- Open CommonDialog1.filename For Output As #hfile

---- ’ 設 接 收 緩 沖 區 的 大 小, 可 按 量 確 定

---- mainfrm.MSComm1.InBufferSize = 4096

---- If Not mainfrm.MSComm1.PortOpen Then ’ 打 開 串 口

------ mainfrm.MSComm1.PortOpen = True

---- End If

---- If Err Then

---- MsgBox “Communcation port cannot be opened!!"

---- ’ 清 接 收 緩 沖 區

---- mainfrm.MSComm1.InBufferCount = 0

---- ’ 設 一 次 讀 入 的 長 度, 可 根 據 數 據 格 式 設 置

---- mainfrm.MSComm1.InputLen = 77

---- ’ 設 置 接 收 事 件 觸 發 的 閥 值

---- mainfrm.MSComm1.RThreshold = 77

---- counter = Timer + 10

---- Do

If Timer > counter Then

mainfrm.Label1.Caption = “ 正 在 通 信......"

mainfrm.Label1.Refresh

counter = Timer + 10

End If

DoEvents

Loop

End Sub

---- 以 下 為 事 件 處 理 子 程 序,flag 為 一 靜 態 變 量 記 錄 讀 取 次 數, 以 便 改 變 接 收 數 據 的 長 度, 讀 者 可 根 據 實 際 需 要 添
加 其 它 處 理 內 容:

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent

Case comEvReceive

If flag > 246 Then

MSComm1.InputLen = 0: MSComm1.RThreshold = 32

End If

buffer = MSComm1.Input

temp = buffer

Print #hfile, temp

counter = Timer + 10

Do While Timer > counter

Do Events

Loop

flag = flag + 1

Case comEvEOF

EVMsg $ = “ 檢 測 到 文 件 結 尾!!!"

Case comFrame

ERMsg $ = “ 幀 出 錯!!!"

Case comRxParity

ERMsg $ = “ 奇 偶 錯!!!"

End Select

If Len(EVMsg $) Then

Text1.Text = “Status: " & EVMsg $

ElseIf Len(ERMsg $) Then

Text1.Text = “Status: " & ERMsg $

Beep

Ret = MsgBox(ERMsg $, 1, “Click Cancel to

quit, OK to ignore.")

MSComm1.PortOpen = False

End If

End Sub

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
国产成人av电影| 国产精品xxx在线观看www| 中文字幕中文字幕中文字幕亚洲无线| 精品视频1区2区3区| 老妇喷水一区二区三区| 久久av二区| 久久久久看片| 欧美在线不卡视频| 欧美日韩一级大片网址| 欧美日韩一卡二卡| 欧美乱熟臀69xxxxxx| 制服丝袜激情欧洲亚洲| 欧美一级夜夜爽| 日韩免费一区二区| 久久久精品天堂| 亚洲青青青在线视频| 亚洲人成7777| 亚洲国产精品一区二区久久恐怖片| 一区二区免费在线播放| 日韩有码一区二区三区| 日本一道高清亚洲日美韩| 久久成人18免费观看| 高清视频一区二区| 欧美激情第8页| 国产亚洲亚洲| 91福利视频久久久久| 欧美一区二区在线观看| 日本一区二区三区四区 | 一区二区三区 在线观看视频| 亚洲国产中文字幕在线视频综合| 青椒成人免费视频| 岛国一区二区三区| 亚洲久久成人| 欧美乱熟臀69xxxxxx| 国产欧美一区二区精品婷婷| 亚洲精品久久久蜜桃| 久久成人18免费观看| 91在线观看高清| 日韩视频中文| 欧美一级生活片| 综合久久久久久| 精品一区二区三区久久| 97成人超碰视| 欧美一级视频| 亚洲精品免费电影| 国产精品亚洲午夜一区二区三区| 欧美在线三区| 色8久久精品久久久久久蜜| 日韩免费观看高清完整版| 亚洲人成小说网站色在线| 久久精品国产77777蜜臀| 91影视在线播放| 欧美亚洲综合一区| 国产精品美女久久久久aⅴ国产馆| 婷婷中文字幕一区三区| 成人app网站| 在线一区二区三区四区| 国产欧美一区二区精品秋霞影院| 日本欧美一区二区三区乱码| 国产精品久久7| 日韩一区二区三区高清免费看看| 一区二区三区日韩欧美精品 | 亚洲影院免费| 国产日韩欧美a| 国产精品18久久久久| 日韩视频中文| 欧美激情资源网| 国产成人av一区二区三区在线| 一区二区三区四区五区视频 | 亚洲精品国产品国语在线app| 国产精品1区2区3区在线观看| 亚洲一区三区视频在线观看| 久久亚洲精华国产精华液 | 红桃视频欧美| 久久久久久久久岛国免费| 国内偷窥港台综合视频在线播放| 一区二区三区精品视频在线观看| www一区二区| 国产·精品毛片| 欧美嫩在线观看| 久久激五月天综合精品| 亚洲成人自拍视频| 欧美激情在线免费观看| 成人一区在线看| 日韩欧美激情一区| 国产乱一区二区| 欧美丝袜丝交足nylons| 亚洲精品一二三四区| 国产精品久久| 亚洲国产精华液网站w| 成人av电影在线播放| 欧美一级搡bbbb搡bbbb| 国内精品国产三级国产a久久| 91国在线观看| 蜜桃视频第一区免费观看| 久久精品综合一区| 亚洲国产成人tv| 免费日韩av| 午夜精品久久久久久久久久 | 26uuu亚洲| www.色综合.com| 国产午夜精品一区二区三区视频 | 91啦中文在线观看| 久久精品亚洲精品国产欧美 | 亚洲视频高清| 18涩涩午夜精品.www| 国内精品久久久久久久果冻传媒| 国产欧美视频一区二区三区| 欧美激情亚洲| 国产精品久久久久久久蜜臀| 伊人成年综合电影网| 亚洲免费观看高清完整版在线 | 奇米影视一区二区三区小说| 91精彩视频在线观看| 国产麻豆精品theporn| 日韩欧美国产三级| 欧美88av| 亚洲精品一卡二卡| 在线观看精品一区| 丁香啪啪综合成人亚洲小说| 久久综合九色综合欧美98| 欧美日韩精品免费观看视一区二区| 中文字幕亚洲一区二区av在线 | 欧美曰成人黄网| 国模少妇一区二区三区| 久久午夜老司机| 亚洲黄色一区| 久久精品国产秦先生| 精品久久久久久久久久久久久久久| 欧美日韩一区二区国产| 亚洲福利一区二区三区| 欧美另类高清zo欧美| 94-欧美-setu| 亚洲成人动漫在线免费观看| 欧美精品乱人伦久久久久久| 99麻豆久久久国产精品免费| 日韩一区在线看| 精品视频1区2区| 国内精品福利| 精品一区二区三区的国产在线播放| 精品粉嫩aⅴ一区二区三区四区| 亚洲欧洲精品一区| 久久99久久99小草精品免视看| 久久免费国产精品 | 玉米视频成人免费看| 91麻豆精品国产91| 国产日韩1区| 粉嫩一区二区三区在线看| 国产精品欧美一区二区三区| 色爱区综合激月婷婷| 91蜜桃在线免费视频| 日韩成人一级大片| 国产婷婷色一区二区三区在线| 久久久国产精品一区二区中文| 成人a免费在线看| 日本欧美一区二区三区| 国产免费久久精品| 在线观看91精品国产麻豆| 中文一区二区| 亚洲欧美一级二级三级| 韩国在线一区二区| 亚洲最新视频在线观看| 国产亚洲精品超碰| 在线成人av网站| 久久精品人人| 今天的高清视频免费播放成人| 国产99久久久久| 日韩不卡一区二区三区| 国产精品白丝在线| 久久色视频免费观看| 欧美蜜桃一区二区三区| 久久电影一区| 亚洲精品日韩在线观看| 99久久精品一区二区| 国产在线视视频有精品| 亚洲高清中文字幕| 亚洲三级视频在线观看| 久久久久久久久久久久久夜| 5566中文字幕一区二区电影| 久久最新视频| 奶水喷射视频一区| 亚洲美洲欧洲综合国产一区| 欧美精品一卡| 99在线精品视频| 成人性生交大片免费看视频在线| 久久er99精品| 蜜桃久久久久久| 日韩精品视频网站| 香蕉av福利精品导航| 亚洲国产日产av| 亚洲在线视频免费观看| 亚洲柠檬福利资源导航| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲va欧美va人人爽| 国产精品jizz在线观看美国 | 欧美一级高清大全免费观看| 欧美三级日韩在线| 欧美性xxxxxxxx| 91.com视频| 日韩一区二区免费在线电影|