·321 ·
…………………………………………………………Page 333……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
11。5 利用 MSm 控件进行串口编程
计算机串口编程在网络通信中也有着十分广泛的应用,比如电话、传真、视频控制等。
本节将介绍如何在 Visual C++ 中利用 MSm 控件进行串口编程。
11。5。1 MSm 控件介绍
1.MSm 控件处理通信的方式
MSm 控件为应用程序提供了读写串口功能,它提供了两种处理通信的方法。
o 事件驱动方式 。在这种情况下,使用 MSm 控件的 Onm 事件可以捕获和处理
这些通信事件。同时,Onm 也可以捕获和处理通信中的错误。
o 查询方式。用户可以在每个重要的程序功能之后检查 mEvent 属性的值来检测事
件和通信错误。在通信频繁的情况下,这种方式更为方便。
2 .MSm 控件常用属性
(1)mPort 属性
该属性用于设置或返回通信端口号,端口号的范围是 1~16,默认为 1。对应的函数为
void SetmPort(short nNewValue)和 short GetmPort() 。
(2 )Settings 属性
该属性用于设置或返回数据传输率、奇偶校验、数据位和停止位参数,其属性值格式为
“BBBB;P;D;S ”。
其中 BBBB 为数据传输率,P 为奇偶校验,D 为数据位,S 为停止位。默认值为
9600;N;8;1 ”。
“
该属性对应的函数为 void SetSettings(LPCTSTR lpszNewValue)和 String GetSettings()。
(3 )PortOpen 属性
该属性用于设置或返回串口状态,值为 TRUE 时打开,值为 FALSE 时关闭。如果要打
开端口,则必须现设置 mPort 属性。
该属性对应的函数为 void SetPortOpen(BOOL bNewValue)和 BOOL GetPortOpen() 。
(4 )Input 属性
该属性用于从接收缓冲区中读取数据,其对应的函数为 VARIANT GetInput() 。
(5 )InputMode 属性
该属性用于设置或返回从接收缓冲区读取数据的格式,属性值为 0 时表示以文本格式读
取数据;属性之为 1 时表示以二进制格式读取数据;属性值为 2 时表示以十六进制格式读取
数据。
该属性对应的函数分别为 void SetInputMode(long nNewValue)和 long GetInputMode() 。
(6 )InBufferCount 属性
该属性用于设置或返回在接收缓冲区中等待的字符数,该属性在端口未打开时不可用。
·322 ·
…………………………………………………………Page 334……………………………………………………………
第 11 章 网络编程
对应的函数为 void SetInBufferCount(short nNewValue)和 short GetInBufferCount() 。
(7 )InBufferSize 属性
该 属 性 用 于 设 置 或 返 回 接 收 缓 冲 区 大 小 的 字 节 数 , 其 对 应 的 函 数 分 别 为 void
SetInBufferSize(short nNewValue)和 short GetInBufferSize() 。
(8)Output 属性
该属性用于向发送缓冲区中写入数据,其对应的函数为 void SetOutput(const VARIANT&
newValue) 。
(9 )OutBufferCount 属性
该属性用于设置或返回在发送缓冲区中等待的字符数,该属性在端口未打开时不可用。
其对应的函数分别为 void SetOutBufferCount(short nNewValue)和 short GetOutBufferCount() 。
(10)OutBufferSize 属性
该 属 性 用 于 设 置 或 返 回 发 送 缓 冲 区 的 字 节 大 小 , 对 应 的 函 数 分 别 为 void
SetOutBufferSize(short nNewValue)和 short GetOutBufferSize() 。
(11)mEvent 属性
该属性用于设置或返回串口事件,其对应的函数分别为 void SetmEvent(short
nNewValue)和 short GetmEvent() 。常见的串口事件如表 11…13 所示。
表 11…13 常见串口事件
常数 取值 描述
EvSend 1 发送事件
EvReceive 2 接收事件
EvCTS 3 clear…to…send 线的状态发生变化
EvDSR 4 data…set ready 线的状态发生变化
EvCD 5 carrier detect 线的状态发生变化
EvRing 6 检测到震铃信号
EvEOF 7 收到文件结束字符
(12)RThreshold 属性
该属性用于设置或返回 RThreshold 数值,所谓 RThreshold 数值是通过 MSm 控件将
mEvent 属性设置为 EvReceive,并在产生 Onm 事件之前所接收的字符数。
该属性对应的函数为 void SetRThreshold(short nNewValue)和 short GetRThreshold() 。
11。5。2 利用 MSm 控件编程的基本流程
利用 MSm 控件编程的基本流程如下。
o 在当前 Project 中插入 MSm 控件;
o 初始化并打开串口;
o 捕捉串口事项;
o 串口读写;
o 关闭串口。
·323 ·
…………………………………………………………Page 335……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
11。5。3 利用 MSm 进行串口通信
实例 11…2:MSm 控件使用实例。源代码在光盘中“11实例 11…2MSm”目录下。
本节通过编写一个小程序来实现利用 MSm 控件进行串口数据传输。
新建一个基于对话框的 MFC 工程,取名为 MSm 。依次单击菜单栏的“Project ”→
“Add To Project ”→“ponents and Controls ”,弹出添加控件对话框,如图 11…16 所示。然
后打开“Registered ActiveX Controls ”文件夹,选中“Microsoft munications Control ,vision
6。0 ”控件,将其添加到工程中,如图 11…17 所示。
图 11…16 添加控件对话框 图 11…17 加入 MSm 控件
然后编辑对话框界面,完成后的效果如图 11…18 所示(本例中,用于选择串口的控件为
bo Box 控件,在为对话框添加 bo Box 控件的时候,需要为该 bo Box 控件加入
1 和 2 两个数据,分别表示串口 1 和串口 2 ),其中控件 就是 MSm 控件。
注意:在为 bo Box 控件添加数据的时候,如果数据多于一个,则在添加后面数据的时候,要
按住 Ctrl 键,同时按回车键进行换行,而不是直接用回车键进行换行。
图 11…18 对话框界面
为对话框添加完
小说推荐
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 其他
- 最新章:第31章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- C语言设计
- 作者:谭浩强1 C 语言概述1.1 C语言的发展过程1.2 当代最优秀的程序设计语言1.3 C语言版本1.4 C语言的特点1.5 面向对象的程序设计语言1.6 C和C+1.7 简单的C程序介绍1.8 输入和输出函数1.9 C源程序的结构特点1.10书写程序时应遵循的规则1.11C语言的字符集1.12
- 文学名著
- 最新章:第45章
- 设计成婚:不入豪门
- 作者:海未央《设计成婚2:名门新娘》作品介绍《名门新娘》介绍:她是骆家收养的孤女,性格因为受他的影响,变得有些古灵精怪,也懂得是非之分!他说他的一切只为他而努力,可是为什么要拒绝自己呢?什么?没有满十八岁?那今天生日,够十八岁了吧?什么,还太小?太过分了,这不是耍着自己玩吗?嘿嘿,有个邪恶的老师,那
- 魔法玄幻
- 最新章:第196章
- 玄学,从入门到放弃
- 《玄学,从入门到放弃》作者:李传言文案:周诣一手拿着卜卦,一手拿着《演员的自我修养,叹息良久。他本是百年前观天占星的玄术师,谁知却一朝重生现代。他只想平淡地生活下去,可天不遂人愿,他注定将在这末法时代掀起波澜!成就一代影帝!谢千仇沉默地看着他…大师,你卦和书都拿倒了#玄学,从入门到放弃,入土,删库跑
- 魔法玄幻
- 最新章:第86章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章
- 要你言听计从
- 作者:决明第一章哈士奇,没有护卫看家的本领,对主人、客人甚至是闯空门的恶人都一样友善,咬着皮球跟小偷一块玩你丢我捡也不用太惊讶,时常被人认为忠诚度不足。贺世祺背靠在冰冷玻璃落地窗前,一整间屋子都是伸手不见五指的黑暗,也好,反正他现在什么也不需要看到,只要耳朵还有听觉就好,顺便听听贴在耳边的手机里还要
- 都市言情
- 最新章:第28章