下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.VB 通 信 控 件 MscommMscomm 控 件 提 供 了 功 能 完 善 的 串 口 数 据 的 发 送 和 接 收功 能, Mscomm 控 件 具 有 两 种 处 理 方 式 : 1 事 件 驱 动 方 式: 由Mscomm 控 件 的 OnComm 事 件 捕 获 并 处 理 通 信 错 误 及 事 件; 2 查 询 方 式 : 通 过 检 查 CommEvent 属 性 的 值 来 判 断 事 件 和 错 误。Mscomm 控 件 的 通 信 功 能 实 现, 实 际 上 是 调 用 了 API 函 数,而 API 函 数 是 由 Comm.drv 解 释 并 传 给 设
2、备 驱 动 程 序 执 行 的,对 于 VB 程 序 开 发 者 只 需 知 道 Mscomm 控 件 的 属 性 和 事 件 的用法即可以实现串口的操作。以 下 是 Mscomm控 件 的 主 要 属 性 和 方 法 :1)CommPort: 设 置 或 返 回 串 行 端 口 号, 其 取 值 范 围 为 1 99,缺省为1。2) Setting 设 置 或 返 回 串 行 端 口 的 波 特 率、 奇 偶 校 验 位、 数据 位 数、 停 止 位。 如 :Mscomm.Setting= “9600,N ,8, 1”。3)PortOpen: 打 开 或 关 闭 串 行 端 口, 格 式为
3、:Mscomm.PortOpen=TRUE|FALSE 。4) InBufferSize: 设 置 或 返 回 接 收 缓 冲 区 的 大 小, 缺 省 为 1024 字 节。5) InBufferCount: 返 回 接 收 缓 冲 区 内 的 等 待 读 取 的 字 节 个数,可通过设置该属性为0来清除接收缓冲区。6) RThreshold: 该 属 性 为 一 阀 值, 它 确 定 当 接 收 缓 冲 区 内 字节个数达到或超过该值后就产生代码为MSCOMM_EV_RECEIVE的 OnComm事 件。7) InputLen:设 置 或 返 回 接 收 缓 冲 区 内 用 Input 读
4、 入 的 个 数。若取0,则INPUT读取整个缓冲区的内容。8) Input: 该 属 性 表 示 从 接 收 缓 冲 区 移 走 一 串 字 符。9) OutBufferSize: 设 置 或 返 回 发 送 缓 冲 区, 缺 省 为 512 字 节。10) OutBufferCounter: 返 回 发 送 缓 冲 区 内 等 待 发 送 的 字 符 数,可用来清空缓冲区。11) Output: 向 发 送 缓 冲 区 传 送 一 字 符 串。12) EOFEnable:若 置 TRUE ,则 当 输 入 中 出 现 EOF ,就 停 止 输 入并 产 生 OnComm事 件。如 果 在
5、通 信 过 程 中 发 生 错 误 或 事 件,就 会 引 发 OnComm事件 并 且 改 变 属 性 值, 由 CommEvent属 性 代 码 反 映 错 误 类 型,在通信程序的设计中可根据该属性值来执行不同的操作,以下是部分属性常数值及其含义:.1)ComEvSend: 其 值 为 1, 发 送 缓 冲 区 的 内 容 少 于 SThreshold 指定的值。2) ComEvReceive: 其 值 为 2, 接 收 缓 冲 区 内 字 符 数 达 到RThreshold值,该 事 件 在 缓 冲 区 中 数 据 被 移 走 前 将 持 续 产生。3)ComEventFrame:其值
6、为1004,硬件检测到帧错误。4)ComEventRxOver:其值为1008,接收缓冲区溢出。5)ComEventTxFull:其值为1010,发送缓冲区溢出。6) ComEventRxParity: 其 值 为 1009 , 奇 偶 校 验。7) ComEvEOF: 其 值 为 7, 接 收 数 据 中 出 现 文 件 结 束( ASCII 码为26)字符。程序样例采 用 Mscomm 控 件 实 现 串 口 通 信 时, 首 先 添 加 一 Mscomm 控件到窗体中,该控件一般不在通用工具窗口中,而是需通过 菜 单 项 “工 程( P) 部 件 (O) ”进 入 选 择 窗 口, 在
7、控 件 tab 页 中选 取 Microsoft Comm Control 5.0 , 此 时 工 具 窗 口 中 出 现 Mscomm 图标,即可被使用。以下是事件驱动方式的接收程序的主要部分:Private Sub getdatafromserial_Click()CommonDialog1.InitDir =“temp"c:CommonDialog1.ShowSavemainfrm.MSComm1.CommPort=1hfile = FreeFile打开存储接收数据的文件Open CommonDialog1.filename For Output As hfile 设接收缓冲区
8、的大小,可按量确定 mainfrm.MSComm1.InBufferSize = 4096If Not mainfrm.MSComm1.PortOpen Then打 开 串 口- mainfrm.MSComm1.PortOpen = True End IfIf Err ThenMsgBox “ Communcation port cannot be opened!"清接收缓冲区mainfrm.MSComm1.InBufferCount = 0设一次读入的长度,可根据数据格式设置mainfrm.MSComm1.InputLen = 77.设置接收事件触发的阀值mainfrm.MSCom
9、m1.RThreshold = 77counter = Timer 10DoIf Timer > counter Thenmainfrm.Label1.Caption =正“ 在 通 信."mainfrm.Label1.Refreshcounter = Timer 10End IfDoEventsLoopEnd Sub以 下 为 事 件 处 理 子 程 序, flag 为 一 静 态 变 量 记 录 读 取 次数,以便改变接收数据的长度,读者可根据实际需要添加其它处理内容:Private Sub MSComm1_OnComm()Select Case MSComm1.CommE
10、ventCase comEvReceiveIf flag > 246 ThenMSComm1.InputLen = 0: MSComm1.RThreshold = 32End Ifbuffer = MSComm1.Inputtemp = bufferPrinthfile , tempcounter = Timer 10Do While Timer > counterDo EventsLoopflag = flag 1Case comEvEOFEVMsg = “检 测 到 文 件 结 尾 !"Case comFrameERMsg = “帧 出 错!"Case comRxParityERMsg = “奇 偶 错!"End Select.If Len(EVMsg) ThenText1.Text =“ Status:" EVMsgEl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农产品销售合同协议范本
- 招标文件房产项目
- 版短期无担保个人
- 第三方支付保证金协议
- 知识产权顾问合同的争议解决方法分享
- 学生健康饮食承诺保证书
- 装饰拆除改造合同
- 道具采购合同范本中文模板样式
- 导购员合同协议的交通补贴
- 幼儿园食品订购合同范本
- NB-T47003.1-2009钢制焊接常压容器(同JB-T4735.1-2009)
- 聚焦高质量+探索新高度+-2025届高考政治复习备考策略
- 惠州市惠城区2022-2023学年七年级上学期期末教学质量检测数学试卷
- 北京市西城区2022-2023学年七年级上学期期末英语试题【带答案】
- ISO45001-2018职业健康安全管理体系之5-4:“5 领导作用和工作人员参与-5.4 工作人员的协商和参与”解读和应用指导材料(2024A0-雷泽佳)
- 看图猜成语共876道题目动画版
- 小学二年级上册数学-数角的个数专项练习
- 曲式与作品分析智慧树知到期末考试答案章节答案2024年兰州文理学院
- 园林设施维护方案
- 特种设备使用单位日管控、周排查、月调度示范表
- 供应链成本控制与降本增效
评论
0/150
提交评论