1在建立的工程中插入MSComm控件
2添加MSComm控件ID的控制变量或对象
3对串口进行初始化,设置MSComm控件的属性
4添加串口事件的消息处理函数OnComm()函数,在函数中根据应用需要,编写数据处理代码
5编写串口发送等其他代码
6关闭串口
个MSComm控件只能对应一个串口,如果应用程序需要访问多个串口,必须使用多个MSComm控件。
处理通信问题的方式:事件驱动方式(与中断原理类似,触发一个事件处理函数),查询方式。
MSComm控件的重要属性中的一部分
CommPort设置并返回通信端口号
Settings以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen设置并返回通信端口的状态。可以用来打开和关闭端口
Input从接受缓冲区返回和删除字符串
Output向传输缓冲区写一个字符串
每个属性都通过Get/Set函数对来获取或设置控件的属性
属性简介
CommPort
设置并返回端口号
void CMSComm::SetCommPort(short nNewValue)
short CMSComm::GetCommPort()
RThreshold
在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm之前,设置并返回要接收的字符数。达到设定值则触发OnComm。
void CMSComm::SetRThreshold(short nNewValue)
short CMSComm::GetRThreshold()
CTSHolding
确定是否可通过查询CTS线的状态发送数据。硬件握手的手工查询
void CMSComm::SetCTSHolding(BOOL bNewValue)
BOOL CMSComm::GetCTSHolding()
SThreshold
在MSComm控件设置CommEvent属性为comEvSend并产生OnComm之前,设置并返回传输缓冲区中允许的最小字符数。
void CMSComm::SetSThreshold(short nNewValue)
short CMSComm::GetSTreshold()
Handshaking
设置或返回硬件握手状态,使用内部通信协议
void CMSComm::SetHandshaking(long nNewValue)
long CMSComm::GetHandshaking()
InputMode
设置或返回传输数据的类型
void CMSComm::SetInputMode(long nNewValue)
long CMSComm::GetInputMode()
DSRHolding
确定DSR线的状态。
void CMSComm::SetDSRHolding(BOOL bNewValue)
BOOL CMSComm::GetDSRHolding()
Settings
设置并返回波特率、奇偶校验、数据位、停止位参数
void CMSComm::SetSettings(LPCTSTR lpszNewValue)
CString CMSComm::GetSettings()
"BBBB,P,D,S"BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数
缺省值为"9600,N,8,1"
InputLen
设置并返回Input属性从接收缓冲区读取的字符数
void CMSComm::SetInputLen(short nNewValue)
short CMSComm::GetInputLen()
缺省值为0,使用Input将使MSComm控件读取接收缓冲区中的全部的内容。在使用Input前,可检查InBufferCount属性来确定缓冲区中是否已有需要数目的字符。此属性在从输出格式为定长数据的机器读取数据时非常有用。
InBufferSize
设置或返回输入缓冲区的大小
void CMSComm::SetInBufferSize(short nNewValue)
short CMSComm::GetInBufferSize()
默认为1024Byte
InBufferCount
设置或返回输入缓冲区内等待读取的字节个数
void CMSComm::SetInBufferCount(short nNewValue)
short CMSComm::GetInBufferCount()
当设置InBufferCount属性的值为0时,可以清空接收缓冲区(很有用的功能)
OutBufferSize
设置或返回发送缓冲区的大小
void CMSComm::SetOutBufferSize(short nNewValue)
short CMSComm::GetOutBufferSize()
默认为512字节。此值不能太小,否则缓冲区易溢出,但太大会不必要地占用内存。
OutBufferCount
返回发送缓冲区的字节数或者清空发送缓冲区
void CMSComm::SetOutBufferCount(short nNewValue)
short CMSComm::GetOutBufferCount()
设置值为0时清空发送缓冲区
InPut
从接收缓冲区内读出数据
VARIANT CMSComm::GetInPut()
返回为VARIANT型变量
当InPutMode为0时,检取数据为文本方式,变量中含有String型数据类型,当InPutMode为1时,检取数据为二进制方式,变量中含Byte数组型数据。
OutPut
向发送缓冲区写数据,或返回发送缓冲区当前的数据
void CMSComm::SetOutPut(const VARIANT&newValue)
VARIANT CMSComm::GetOutPut()
PortOpen
用于打开或关闭串口,或返回串口的开、关状态
void CMSComm::SetPortOpen(BOOL bNewValue)
BOOL CMSComm::GetPortOpen()
TURE打开串口,FALSE关闭串口,程序终止后,MSComm控件自动关闭串口
EOFEnable
确定在输入过程中MSComm控件是否寻找文件结尾EOF字符,如果找到EOF字符,将停止输入并激活OnComm事件,此时CommEvent属性设置为ComEvEOF
void CMSComm::SetEOFEnable(BOOL bNewValue)
BOOL CMSComm::GetEOFEnable()
DTREnalbe
设置或返回DTR线状态。
void CMSComm::SetDTREnable(BOOL bNewValue)
BOOL CMSComm::GetDTREnable()
RTSEnable
确定是否使RTS线有效
void CMSComm::SetRTSEnable(BOOL bNewValue)
BOOL CMSComm::GetRTSEnable()
Break
设置或清除中断信号的状态
void CMSComm::SetBreak(BOOL bNewValue)
BOOL CMSComm::GetBreak()
CommID
返回一个说明通信设备的句柄。
void CMSComm::SetCommID(long nNewValue)
long CMSComm::GetCommID()
该值与WindowsAPICreateFile函数返回的值一致。
NullDiscard
确定Null字符是否从端口传送到接收缓冲区
void CMSComm::SetNullDiscard(BOOL bNewValue)
BOOL CMSComm::GetNullDiscard()
OnComm事件和CommEvent属性
设置或返回无论何时当CommEvent属性的值变化时,就产生OnComm事件,标志发生了一个通信事件或一个错误。CommEvent属性值反映错误或者事件类型,通常在程序中的事件消息处理函数中对CommEvent事件进行处理。
void CMSComm::SetCommEvent(short nNewValue)
short CMSComm::GetCommEvent()
通常由函数GetCommEvent()得到当前事件值,再进行相应的处理。
分享到:
相关推荐
串口通信技术在VS2010中使用MSComm控件的实现步骤 串口通信是一种常用的数据交换方式,在各种设备和系统之间进行数据交换。使用MSComm控件可以简化串口通信的开发过程。本文将介绍如何在VS2010中使用MSComm控件实现...
在VC++编程环境中,MSComm控件是一种常用的工具,用于实现串行通信功能。这个控件使得开发者可以方便地在Windows应用程序中控制串行端口,进行数据的发送和接收,广泛应用于各种需要硬件交互的项目中。下面将详细...
在本文中,我们将深入探讨如何使用MSComm控件在Visual C++ 6.0(MFC)环境中进行串口通信。MSComm控件是Microsoft提供的一种用于实现串行通信的工具,它允许开发者轻松地在应用程序中添加串口功能。 首先,让我们...
在这个“MSComm控件串口编程入门代码”示例中,我们将探讨如何使用MSComm控件实现在两个对话框程序之间进行字符串的收发。 首先,我们需要了解MSComm控件的主要属性、方法和事件。其中,`CommPort`属性用来设置或...
标题中的“bcb串口mscomm控件程序编译运行错误修复工具集合c++builder”指的是一款专门针对C++Builder开发环境中的串口通信问题,特别是涉及到MSComm控件时遇到的编译和运行错误的修复工具集。C++Builder是Borland...
PB(PowerBuilder)是一种流行...通过以上步骤,PB应用就可以利用MSCOMM控件实现串口通信,读取串口数据,并根据接收到的数据进行相应的处理。这个方法对于需要与硬件设备交互或进行串行通信的PB应用程序来说非常实用。
- `基于MSComm控件VC++串口源码使用说明.docx`:该文档可能详细解释了如何在VC++项目中使用MSComm控件进行串口编程,包括设置控件、编写代码以及处理通信事件的步骤。 - `深入浅出VC++串口编程.pdf`:这本书籍或者...
在压缩包文件11-7中,可能包含了示例代码、教程文档或其他资源,帮助开发者更好地理解和使用MSComm控件进行串口编程。这些资源可能涵盖了如何设置控件属性、编写事件处理函数以及解决常见问题的实例,对于初学者尤其...
MSCOMM控件是Microsoft提供的一种用于串行通信的ActiveX控件,它为开发者提供了丰富的API函数,使得在编程环境中,如Visual Basic、VC++或VBScript等,可以方便地实现串口的打开、关闭、读写以及设置波特率、校验位...
这个"VC++用MSComm控件进行串口通信.rar"压缩包文件可能包含了一个完整的示例项目或教程,帮助用户理解如何在VC++中利用MSComm控件进行串口通信。 串口通信是一种古老的通信方式,但仍然在很多场合得到应用,比如...
解决 WIN7 系统中 VS2010 不能使用 ...解决 WIN7 系统中 VS2010 不能使用 MSCOMM 控件的问题需要下载和注册 MSCOMM 控件包、配置注册表、在 VS2010 中添加 MSCOMM 控件等步骤,以便顺利使用 MSCOMM 控件进行串口编程。
在MFC中,我们可以通过添加MSComm控件到对话框资源中,然后通过编程接口与控件交互来实现串口通信功能。 步骤一:添加MSComm控件 1. 打开MFC项目的对话框资源,在资源编辑器中选择“控件”选项卡,找到"Microsoft ...
在本文中,我们将深入探讨如何使用MSComm控件进行VC++串口编程。MSComm控件是Microsoft提供的一种用于实现串行通信的组件,尤其在早期的Visual C++版本如VC++6.0中非常常见。它使得开发者能够轻松地在应用程序中添加...
本文将基于《Delphi串口通信工程开发实例导航》电子书中关于MSComm控件串口收发程序的部分内容,详细介绍其工作原理与实现方法。 #### 二、MSComm控件简介 MSComm控件提供了与串行端口通信的功能,它支持基本的串行...
MSComm控件是Microsoft提供的一种用于处理串行通信的组件,它简化了串口编程的过程,使得开发者可以方便地与各种串行设备交互。 首先,我们来了解MSComm控件的基本概念。MSComm控件提供了许多属性、方法和事件,...
Delphi 是一款强大的面向对象的编程环境,它提供了丰富的组件库,其中包括 MSComm 控件,用于实现串口通信功能。本文将详细介绍如何使用 Delphi 和 MSComm 控件来创建一个简单的串口助手。 首先,我们需要了解 ...
### VC_下MSComm控件的串口通信方法 #### 概述 随着计算机网络和多微机...通过以上步骤,可以成功实现基于VC++的MSComm控件串口通信功能。这种方法不仅大大简化了串口编程的复杂性,还提高了程序的开发效率和可靠性。
在本文中,我们将深入探讨如何使用Visual Studio 2010 (VS2010) 和C++语言进行串口通信,特别关注MSComm控件的使用及其在项目中的实现。串口通信是计算机硬件之间交换数据的一种基本方法,尤其在嵌入式系统和设备...
在VC++编程环境中,MSComm控件是一种常用的通信接口,用于实现串行通信功能。本文将详细介绍如何利用MSComm控件来编写...通过实际操作SCommTest项目,你可以更直观地理解这些概念和步骤,进一步提升你的串口编程能力。