MSComm控件的使用

MFC串口通信(二)——使用MSComm控件实现串口通信   由于项目需要,最近在写一个简单的串口通信,基于MFC框架,写完之后特此回顾记录一下学习的过程: 串口通信主体框架 (1) 初始化界面(自动获取全部可用串口) (2) 打开串口 (读取串口号,初始化串口参数(波特率、校验位、数据位等),若串口已经打开则关闭串口) (3) 发送数据 (更新控件状态,进入MSComm事件驱动函数,读缓冲区,数据转换,更新编辑框成员函数,更新编辑框内容) (4) ... 阅读详情

使用MSComm控件实现串行通信。

 

给工程添加MSComm控件。

 

初始化:

m_mscom.SetCommPort(1);  指定串口,参数为1~16

m_mscom.SetInBufferSize();  设置输入缓冲区的大小

m_mscom.SetOutBufferSize();  设置输出缓冲区的大小

if (!m_mscom.GetPortOpen())

{ m_mscom.SetPortOpen(TRUE); }  打开串口

m_mscom.SetInputMode(1);  设置输入方式为二进制方式

m_mscom.SetSettings("9600,n,8,1");  设置波特率等参数

m_mscom.SetRThreshold();  参数默认为0,则不产生OnComm事件。为1则接收缓冲区收到一个字符就会产生一个OnComm事件

m_mscom.SetInputLen();  设置从接收缓冲区读取的字符数

 

MSComm只有一个事件,即OnComm事件

 

发送数据:

CByteArray sendArr;

//给sendArr赋值

m_mscom.SetOutput(COleVariant(sendArr));  向发送缓冲区写数据

 

在函数OnComm中读取数据:

VARIANT  variant_inp;

COleSafeArray safearry_inp;

BYTE  rxdata[1000];

switch(m_mscom.GetCommEvent())

{

          case  2:            //表示接收缓冲区内有字符

    {

       variant_inp = m_mscom.GetInput();

                           safearray_inp = variant_inp;

                           len = safearray_inp.GetOneDimSize();

                           for (int i =0;i<len;i++)

                           {  safearray_inp.GetElement(&i,&rxdata[i]);  }

                            rxdata[i] = '/0';

                      }

                       break;

            default:

}

MSComm控件的使用方法1-2 如果发送缓冲区中的字符比value 值小,则将CommEvent 属性设置为comEvSend,并产生OnComm 事件。这对小的自含程序可能比较常用。如果CommPort属性设置为无效的端口号,在你试图打开端口时,MSComm 控件将产生error68(Device unavailable)错误。如果你的硬件设备不支持Settings属性中的一些设置,则你的硬件工作或许不正确。当你使用奇偶校验位时,MSComm 控件将数据中所有设置(即“1”)的比特位相加,来检测结果的奇偶性(根据端口的奇偶设置)。 阅读详情

相关推荐

通信控件MSComm使用详解

通信控件MSComm使用详解 [日期:2006-11-14] 来源:  作者: [字体:大 中 小]   MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去

oakeil的专栏 897

VS2010中使用MSComm32.OCX进行MFC串口通信编程(Win8.1)

种情况一般出现在Windows7版本下,这说明MSCOMM32没注册,我们可以选择两种方法去解决,一种方法是当我们安装VC++6.0/VB6.0时,如果选择了ACtiveX控件项(自定义安装),MSComm控件就会自动安装在计算机上了,并在系统文件夹下多了3个文件:Mscomm.srg, Mscomm32.ocx,Mscomm32.dep;另一种方法是下载这三个文件将其放到C/Windows/Sy

Killer的专栏 6817

《MSComm控件小结》

一:在Visual C++ 6.0集成开发环境下,可以通过三种方法实现串口通信: 1)运用MFC函数进行编程实现串口通信 2)运用MSComm控件进行编程实现串口通信 3)运用VC++运行库函数实现串口通信 在这三种方法中,MSComm—( Microsoft Communication Control )控件因使用简便而广受应用,它是Microsoft公司出品的一种ActiveX 控件。控

u011332687的专栏 3658

C#串口类简介

C#串口通信:MSComm控件使用详解 MSComm控件两种处理通讯的方式 CommPort属性 RThreshold 属性 CTSHolding 属性 SThreshold 属性 CDHolding 属性 DSRHolding 属性 Settings 属性 InputLen 属性 EOFEnable 属性 Handshake 常数 OnComm 常数 InputMode 常数

sharkchen的专栏 1345

MSComm控件介绍

在MFC中进行串口通讯最简单的方法莫过于在对话框中使用MSComm控件了,MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备(如Modem).还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工 、事件驱动的、高效实用的通信程序。 一、用MSComm控件通信 1.串口通信基础知识 一般悦来,计

cxq_1993的专栏 796

关于2010下使用mscomm控件

最近要用PC写一个上位机程序,用UART与下位机通信。 之前有用过VC6的mscomm控件。所以这次也想继续用此控件实现此功能,结果没想到刚一上手还真的绕了不少弯子。主要是因为VC2010下对mscomm控件的添加,以及对控件成员变量的添加有点小繁琐,特此把个人实践的经验写下来以供新人参考。说明一下,本人用的xp+VS2010。 如果你正在使用2010,并且想用mscomm

drlsdrls的专栏 4078

VS2019 MFC MSComm 串口通信例程基于MSComm控件

Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控件后就可以较为方便地实现对通过计算机串口收发数据。 要使用ActiveX控件MSComm,程序员必须将其添加入工程。.........

lzc881012的博客 9890

VS2008下使用ActiveX控件MSComm

<br />如果在安装时,没有安装ActiveX控件,后期想要使用这些控件的话,一般需要手动添加。<br />例如,我在安装VS2008时,没有进行完整安装,想要使用MSComm与串口进行通信时,发现找不到这个控件。<br />一般来说,遇到这个问题的解决方案就是:去网上下载到需要的文件,然后将之手动添加到注册表中,或者不添加到注册表,每次需要使用此控件时,找到相应的.ocx文件,添加到工程中,便会生成对应的类.<br />下面看一下详细的步骤:<br />1.下载需要的文件<br /> <br />htt

suixingruwo的专栏 2805

MSComm控件

 Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控件后就可以较为方便地实现对通过计算机串口收发数据。  要使用ActiveX控件MSComm,程序员必须将其添加入工程,其方法是:  (1)单击主菜单project的子菜单Add To project

firy_lau1982的专栏 5346

串口通讯mscomm控件下载

<br />串口通讯mscomm控件下载<br /> <br />       大家知道,当我们安装VC++6.0/VB6.0时,如果选择了ACtiveX控件项(自定义安装),MSComm控件就会自动安装在计算机上了,并在系统文件夹下多了3个文件:Mscomm.srg, Mscomm32.ocx,Mscomm32.dep <br />  注意,操作系统不同,则系统文件夹不同:<br />       Win98:    windows/system<br />       Win2000:  winnt/s

微笑的艾米 4108

MFC使用MSComm实现串口通信的实例

文件是一个MSComm实现串口通信的实例,包括源码与虚拟串口工具

如何使用MScomm控件

1:如果添加MSComm控件? 见:http://blog.youkuaiyun.com/flydream0/article/details/8002012   2:为对话框添加MSComm控件成员变量 右击MSComm控件,然后选择Add Variable...   3:为对话框添加OnComm事件 右击MSComm控件,然后选择Add Event Handle..   4:打开/关闭串口

放飞梦想,成就未来 1万+

MSComm控件使用详解

MSComm控件使用详解 MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。

VB中 MSComm串口操作控件使用详解

原文地址:点击打开链接 MSComm控件使用详解  MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数, 而且在VC、VB、Delphi等语言中均可使用。 Micro

huaye502的专栏 1万+

VB中_MSComm控件使用详解

VB中_MSComm控件使用详解

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(四)-无人机系统(UAS)命令与控制(C2)通信用例

UTM向5G网络提供无人机系统C2通信所需的信息,例如服务类别、无人机系统服务的流量类型、授权的无人机系统服务所需的QoS以及无人机系统服务的订阅。遵循模型B的网络辅助C2模型,为了确保UAS操作的C2通信的服务可用性和可靠性,特别是当无人机在操作员的视线之外(BLOS)飞行时,为无人机提供支持冗余的C2通信链路。如果需要创建额外的C2通信连接或更改现有数据连接的配置以进行C2通信,则5G网络会根据无人机系统的授权服务信息和C2通信中所需的QoS和优先级,修改或分配一个或多个C2通信流量的QoS流。

u011376987的博客 2051

串口通信-MSComm控件使用详解

MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通

dongyue786的专栏 5万+

Claude Code+Cursor+Claude 4三剑合璧!5步搞定Magentic-UI的OAuth2.0集成,开发效率飙升500%,新手秒变全栈工程师

本文详细介绍了如何利用Claude Code、Cursor和Claude 4三款AI工具高效集成Magentic-UI的OAuth2.0认证系统。通过5个步骤的实战演练,开发者可快速完成从环境搭建、项目分析、代码生成到前端集成的全过程,显著提升开发效率。文章还提供了JWT令牌管理、安全配置及常见问题解决方案。

weixin_29234509的博客 453

VS2015中配置MSComm通讯控件和注意事项

1.MSCommon通讯控件前文回顾 MSComm 作为一个串行通讯控件。在为程序员串口通讯编程节省了很多时间,基于对话框的应用中加入一个MSComm控件非常简单。 MSComm控件提供了两种处理通信的方法: 事件驱动 事件驱动通信,是一种功能很强的处理串口活动的方法。例如,当在CD(Carrier Detect)线或RTS(Request To Send)线上有字符到达或发生

沈春旭的博客 1万+

银河麒麟V10离线安装VLC播放器:依赖处理与3.0.9.2版本实操指南

在国产化操作系统日益普及的背景下,软件安装方式成为政企内网用户关注的重点。离线安装作为一种不依赖公网源的部署手段,常用于解决内网环境下的软件获取问题。其核心在于理解Linux包管理机制,如dpkg与apt对依赖关系的处理逻辑。掌握这一原理,不仅能应对多媒体软件的部署,也能提升系统维护效率。VLC作为跨平台多媒体播放器,凭借强大的解码能力与协议支持,广泛应用于本地视频播放、RTSP拉流及监控大屏等场景。本文从离线安装的通用概念出发,结合银河麒麟V10桌面版的实际环境,详细梳理了VLC 3.0.9.2离线包的获

weixin_32247165的博客 368

DeepL Pro免费使用技巧与API调用优化方案

机器翻译技术通过神经网络模型实现跨语言语义转换,其核心价值在于保持专业术语准确性的同时实现自然语言流畅度。现代翻译工具如DeepL采用注意力机制等深度学习技术,在医疗、法律等专业领域展现出接近人工翻译的质量。针对API调用场景,开发者可通过请求模拟实现小批量自动化处理,而文档预处理和术语库优化则能显著提升免费额度使用效率。本文重点解析如何通过字符计算优化、临时接口调用等工程实践方法,在合规前提下最大化利用免费翻译资源。

weixin_29038303的博客 265
上一篇: 通过注册表获取系统信息
下一篇: Difference Between ADDR and OFFSET
Leasangle
博客等级 码龄17年 32粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值