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

news2025/4/16 1:03:06

文章目录

  • 前言
  • 一、什么是 MSComm
  • 二、MSComm 控件下载
  • 三、MSComm 控件的注册
  • 四、使用 MSComm 控件
    • 1、前面板放置控件
    • 2、MSComm 的常用属性
    • 3、MSComm 控件的事件
  • 五、实现串口收发
    • 1、搭建虚拟串口
    • 2、发送测试
    • 3、接收测试
    • 4、后面板核心程序框图
  • 六、程序自取


前言

本文介绍使用 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


我的qq:2442391036,欢迎交流!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/794563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

study 第三方库

import osprint(os.listdir()) #列出当前目录下的文件 print(os.getcwd()) #获取绝对路径if not os.path.exists("b"):os.mkdir("b") if not os.path.exists("b/test.ext"):f open("b/text.txt","w")f.write("hello,f…

sql学习笔记

sql语句优先级 FROM → WHERE → GROUP BY → SELECT → HAVING → ORDER BY sql case用法 例题: 按照销售单价( sale_price )对练习 3.6 中的 product(商品)表中的商品进行如下分类。 低档商品:销售单价在1000日元以下&#x…

MATLAB | 产生阿尔法稳定分布噪声并作出概率密度函数

一、问题描述 想产生不同特征参数的α稳定随机变量,并且作出其概率密度函数进行对比。 二、解决思路 运行了MATLAB的官方实例代码: openExample(‘stats/ComparePDFsOfStableDistributionsExample’) (1)使用makedist()函数生成…

低代码未来的发展方向

大的未来都是AI ,AI , AI …,理论上不可能有别的。 拿iVX来说吧,已经做了一整套完整的 可视化编程范式,基本可以生成所有系统的前端后台和数据库代码。也就是说,其组件系统和逻辑表达(非代码&a…

整天用 Calendar 日历组件,不如自己手写一个吧!

目录 Date 的 api 实现日历组件 静态的布局 再来写逻辑 增加两个参数 提供 ref 来暴露 api 总结 日历组件想必大家都用过,在各个组件库里都有。比如 antd 的 Calendar 组件(或者 DatePicker 组件): 那这种日历组件是怎么实…

【论文阅读】A Comprehensive Survey

论文来源:Li M , Liu Y , Liu X ,et al.The Deep Learning Compiler: A Comprehensive Survey[J]. 2020.DOI:10.1109/TPDS.2020.3030548. 这是一篇关于深度学习编译器的综述类文章。 什么是深度学习编译器 深度学习(Deep Learning)编译器将…

STM32H5开发(4)----开发板介绍

STM32H5开发----4.开发板介绍 套件概述样品申请特征系统控制和生态系统访问功能示意图系统框图跳线设置开发板原理图 套件概述 STM32H503RBTx_LQFP64是STM32H5系列微控制器的一款出色评估套件,它采用了先进的40nm工艺制造,为开发者提供了卓越的性能和能…

MyBatis基础模块-类型转换模块

文章目录 1. 为什么需要类型转换模块2. TypeHandler 1. 为什么需要类型转换模块 执行sql,在PreparedStatement设置参数时,需要把java类型转换成jdbc类型,而从结果集中获取数据时,需要把jdbc类型转换为java类型。 2. TypeHandle…

软件测试未来的发展趋势以及软件测试进阶路线

全球各地的企业每天都在发展变化着,以应对市场挑战,满足日益成熟的客户需求。即使是正在进行的技术进步也会使软件测试专家在实践的过程中更加专注和精确。 2021年给软件测试领域带来了新的技术解决方案,以及质量保证和软件测试的实现。与此同…

【数据结构和算法14】堆结构(基于数组实现)

目录 1、有关二叉树和堆的介绍 2、大根堆的代码实现 3、小根堆的代码实现 1、有关二叉树和堆的介绍 计算机科学中,堆是一种基于树的数据结构,通常用完全二叉树实现。堆的特性如下 在大顶堆(大根堆)中,任意节点 C 与…

开源视频监控管理平台国标GB28181视频EasyCVR电子地图功能展示优化

视频监控综合管理平台EasyCVR可提供的视频能力包括:视频监控直播、云端录像、云存储、录像检索与回看、告警上报、平台级联、云台控制、语音对讲、电子地图、H.265自动转码等,也具备接入AI智能分析的能力。 视频汇聚平台EasyCVR可拓展性强、视频能力灵活…

centos7中用shell脚本实现mysql分库分表备份

环境: 脚本: #!/bash/bin back_path/backup/db databases_file/backup/databases.list [ -f $databases_file ] || touch /backup/databases.list if [[ ! -s ${databases_file} ]] thenecho "$databases_file为空,请在该文件中写上需要备份的数据…

C# Modbus TCP上位机测试

前面说了三菱和西门子PLC的上位机通信,实际在生产应用中,设备会有很多不同的厂家生产的PLC,那么,我们就需要一种通用的语言,进行设备之间的通信,工业上较为广泛使用的语言之一就是Modbus。 Modbus有多种连…

filscan api 获取错误扇区个数

获取错误扇区个数 POST 请求 curl -s -X POST -H "Content-Type: application/json" -d {"account_id": "f01889512"} https://api-v2.filscan.io/api/v1/AccountInfoByID | jq -r .result.account_info.account_miner.account_indicator.fault…

JMM内存模型深入详解,探索volatile、synchronized与VarHandle深层次的奥秘

文章目录 一、JMM内存模型1、什么是JMM(1)参考资料 2、竞态条件(Race Condition)(1)实例 3、同步动作(Synchronization Order)(1)实例(2&#xff…

fSGAT批量候选基因关联分析丨快速单基因关联分析

候选基因如何分析? 通常情况下关联分析会得到一大堆候选基因,总不可能每个都有用,因此需要对候选基因进行深一步分析,本篇笔记分享一下群体遗传学研究中GWAS候选位点与候选基因的筛选思路。主要的方式包括单基因关联分析、连锁程度…

Appium+python自动化(二十三)- Monkeyrunner与Monkey傻傻的分不清楚(超详解)

monkeyrunner简介 1.monkeyrunner工具使用Jython,这是一种使用Java编程语言的Python实现。Jython允许monkeyrunner API与Android框架轻松交互。使用Jython,您可以使用Python语法来访问API的常量,类和方法。MonkeyRunner工具是使用Jython(使用…

【VCS】(7)Fast Gate-level Verification

Fast Gate-level Verification VCS中SDF反标(Back-Annotation)Lab 门级网表的后仿真DC综合RTL级仿真波形后仿真 网表级的仿真可以验证综合后得到的门级网表和RTL代码是否一致。也可以验证,在加速时序信息(SDF)之后,设计的功能是否…

基于POX、JBX交叉的遗传算法求解车间调度

对于流水车间调度问题,n个工件在m台设备上加工,已知每个工件每个工序使用的机器和每个工件每个工序所用时间,通过决策每个机器上工件的加工顺序和每个工序的开始时间,使完成所有工序所用时间(makespan)最小。具有下列约束&#xf…

58寸透明屏的画质怎么样?

58寸透明屏是一种新型的显示屏技术,它具有透明度高、色彩鲜艳、清晰度高等特点,可以广泛应用于商业展示、户外广告、智能家居等领域。 首先,58寸透明屏的透明度高。 透明屏采用了先进的光学技术,使得屏幕在显示图像的同时&#x…