预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

串口调试助手源程序及编程详细过程作者:龚建伟2001.6.20可以任意转载但必须注明作者和说明来自http://roaringwind.best.163.com不得作为商用目次:1.建立项目2.在项目中插入MSComm控件3.利用ClassWizard定义CMSComm类控制变量4.在对话框中添加控件5.添加串口事件消息处理函数OnComm()6.打开和设置串口参数7.发送数据如果你还没有下载源程序又对本文有兴趣请立即下载在众多网友的支持下串口调试助手从2001年5月21日发布至今短短一个月在全国各地累计下载量近5000人次在近200多个电子邮件中20多人提供了使用测试意见更有50多位朋友提出要串口调试助手的源代码为了答谢谢朋友们的支持公开推出我最初用VC控件MSComm编写串口通信程序的源代码并写出详细的编程过程姑且叫串口调试助手源程序V1.0或VC串口通讯源程序吧我相信如果你用VC编程那么有了这个代码就可以轻而易举地完成串口编程任务了。(也许本文过于详细高手就不用看)开始吧:1.建立项目:打开VC++6.0建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致等会你会方便一点);2.在项目中插入MSComm控件选择Project菜单下AddToProject子菜单中的ComponentsandControls…选项在弹出的对话框中双击RegisteredActiveXControls项(稍等一会这个过程较慢)则所有注册过的ActiveX控件出现在列表框中。选择MicrosoftCommunicationsControlversion6.0单击Insert按钮将它插入到我们的Project中来接受缺省的选项。(如果你在控件列表中看不到MicrosoftCommunicationsControlversion6.0那可能是你在安装VC6时没有把ActiveX一项选上重新安装VC6选上ActiveX就可以了)这时在ClassView视窗中就可以看到CMSComm类了(注意:此类在ClassWizard中看不到重构clw文件也一样)并且在控件工具栏Controls中出现了电话图标(如图1所示)现在要做的是用鼠标将此图标拖到对话框中程序运行后这个图标是看不到的。3.利用ClassWizard定义CMSComm类控制对象打开ClassWizard->MemberViariables选项卡选择CSCommTestDlg类为IDC_MSCOMM1添加控制变量:m_ctrlComm这时你可以看一看在对话框头文件中自动加入了//{{AFX_INCLUDES()#include"mscomm.h"//}}AFX_INCLUDES(这时运行程序如果有错那就再从头开始)。4.在对话框中添加控件向主对话框中添加两个编辑框一个用于接收显示数据ID为IDC_EDIT_RXDATA另一个用于输入发送数据ID为IDC_EDIT_TXDATA再添加一个按钮功能是按一次就把发送编辑框中的内容发送一次将其ID设为IDC_BUTTON_MANUALSEND。别忘记了将接收编辑框的Properties->Styles中把Miltiline和VerticalScroll属性选上发送编辑框若你想输入多行文字也可选上Miltiline。再打开ClassWizard->MemberViariables选项卡选择CSCommTestDlg类为IDC_EDIT_RXDATA添加CString变量m_strRXData为IDC_EDIT_TXDATA添加CString变量m_strTXData。说明:m_strRXData和m_strTXData分别用来放入接收和发送的字符数据。5.添加串口事件消息处理函数OnComm()打开ClassWizard->MessageMaps选择类CSCommTestDlg选择IDC_MSCOMM1双击消息OnComm将弹出的对话框中将函数名改为OnComm(好记而已)OK。这个函数是用来处理串口消息事件的如每当串口接收到数据就会产生一个串口接收数据缓冲区中有字符的消息事件我们刚才添加的函数就会执行我们在OnComm()函数加入相应的处理代码就能实现自已想要的功能了。请你在函数中加入如下代码:voidCSCommTestDlg::OnComm(){//TODO:AddyourcontrolnotificationhandlercodehereVARIANTvariant_inp;COleSafeArraysafearray_inp;LONGlenk;BYT