前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Labview串口通信MSComm实现串口收发

Labview串口通信MSComm实现串口收发

作者头像
Gnep@97
发布2023-08-10 11:07:00
6060
发布2023-08-10 11:07:00
举报
文章被收录于专栏:Gnep's_Technology_Blog

前言

本文介绍使用 ActiveX 控件 MSComm 实现高性能的串口收发。

一、什么是 MSComm

MSComm 作为一个串行通讯控件,每个 MSComm 控件,都对应一个串口,若需访问多个串口时必须使用多个 MSComm 控件。

MSComm 是 ActiveX 控件,可以在 PC 上控制串口数据的发送和接收,支持查询方式和中断方式(Windows 下称为事件驱动方式)。

  • 中断方式:当串口有数据到达或有数据写入到串口缓冲中时,就会触发中断,可以使用 OnComm 捕获事件并进行处理。这种方式响应及时,比轮询方式效率要高。
  • 查询方式:实际上仍热是事件驱动的,需要检查 CommEvent 属性值来查询事件。

二、MSComm 控件下载

点此链接:MSComm控件

在这里插入图片描述
在这里插入图片描述

三、MSComm 控件的注册

1、将上面下载的 MSCOMM.SRG、MSCOMM32.DEP、MSCOMM32.oca、mscomm32.ocx 这四个文件放到 C:\windows\system32(32位系统) 或 C:\Windows\SysWOW64(64位系统)目录下。

2、在“此目录“下找到“cmd.exe”文件,右键以管理员身份运行,在弹出的对话框内输入:regsvr32 mscomm32.ocx 后,回车。控件注册成功后,如下图。

在这里插入图片描述
在这里插入图片描述

四、使用 MSComm 控件

1、前面板放置控件

①、打开前面板,右键 -> 容器 -> ActiveX容器

在这里插入图片描述
在这里插入图片描述

②、右键 ActiveX容器 -> 插入 ActiveX对象

在这里插入图片描述
在这里插入图片描述

③、选择 Microsoft Communication Control,version 6.0,点击确定,得到下图的 MSComm 控件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

④、右键点击 MSComm 控件,选择“属性浏览器”,可得该控件的属性

在这里插入图片描述
在这里插入图片描述

2、MSComm 的常用属性

  • CommPort:设置并返回通讯端口号
  • Settings:以字符串形式设置并返回波特率、奇偶校验、数据位、停止位
  • PortOpen:设置并返回通讯端口的状态。也可以打开和关闭端口
  • Input:从接收缓冲区返回和删除字符
  • InputLen:设置并返回 input 属性从接收缓冲区读取的字符数
  • Output:向传输缓冲区写一个字符串
  • RThreshold:在设置 CommEvent 属性为 comEvReceive 并产生 OnComm 之前,设置并返回要接收的字符数
  • CTSHolding:确定是否可通过查询 CTS 线的状态发送数据
  • SThreshold:设置 CommEvent 属性为 comEvSend 并产生 OnComm 事件之前,设置并返回传输缓冲区中允许的最小字符数
  • CDHolding:通过查询 CD 线的状态确定当前是否有传输
  • DSRHolding:确定 DSR 线的状态
  • EOFEnable:确定在输入过程中 MSComm 控件是否寻找文件结尾(EOF)
在这里插入图片描述
在这里插入图片描述

3、MSComm 控件的事件

MSCOMM控件只使用一个事件 OnComm,用属性 CommEvent 的十七个值来区分不同的触发时机。主要有以下几个:

  • CommEvent=1时:传输缓冲区中的字符个数已少于 Sthreshold (可设置的属性值)个
  • CommEvent=2时:接收缓冲区中收到 Rthreshold(可设置的属性值)个字符,利用此事件可编写接收数据的过程
  • CommEvent=3时:CTS线发生变化
  • CommEvent=4时:DSR线发生变化
  • CommEvent=5时:CD线发生变化
  • CommEvent=6时:检测到振铃信号 另外十种情况是通信错误时产生,即错误代码。

五、实现串口收发

1、搭建虚拟串口

参考我的上一篇博客:https://blog.csdn.net/qq_41839588/article/details/131936554?spm=1001.2014.3001.5501

2、发送测试

程序中使用的是 COM8 口,因此开一个虚拟串口 COM9,COM9(发) --> COM8(收)

在这里插入图片描述
在这里插入图片描述

3、接收测试

程序中使用的是 COM8 口,因此开一个虚拟串口 COM9,COM8(发) --> COM9(收)

在这里插入图片描述
在这里插入图片描述

4、后面板核心程序框图

在这里插入图片描述
在这里插入图片描述

六、程序自取

链接:https://download.csdn.net/download/qq_41839588/88104522

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、什么是 MSComm
  • 二、MSComm 控件下载
  • 三、MSComm 控件的注册
  • 四、使用 MSComm 控件
    • 1、前面板放置控件
      • 2、MSComm 的常用属性
        • 3、MSComm 控件的事件
        • 五、实现串口收发
          • 1、搭建虚拟串口
            • 2、发送测试
              • 3、接收测试
                • 4、后面板核心程序框图
                • 六、程序自取
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档