vc6.0mfc串口通信编写全过程

vc6.0mfc串口通信编写全过程

ID:6079411

大小:242.50 KB

页数:17页

时间:2018-01-02

vc6.0mfc串口通信编写全过程_第1页
vc6.0mfc串口通信编写全过程_第2页
vc6.0mfc串口通信编写全过程_第3页
vc6.0mfc串口通信编写全过程_第4页
vc6.0mfc串口通信编写全过程_第5页
资源描述:

《vc6.0mfc串口通信编写全过程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、其于MFC的串口调试助手编辑过程一、新建打开VC6.0文件新建工程MFCAppWiard(exe)位置(选择保存工程位置)工程名称(输入工程名XXXX)确定选择基本对话框下一步下一步下一步选择(CXXXXDlg)完成确定在生成的基本对话框内将不需要按钮及提示框(自动生成的“确定”“取消”及提示框)删除或修改使用,至此基本框架完成如下图:此控件(标志)是下面步骤添加进来的串口控件二、往生成的基本框架中添加控件1、因为控件列表框内没有串口通信用到的通信控件,所以要先添加到控件列表框内再将控件添加到基本框内使用,步骤如下:菜单栏工程添加到工程C

2、omponentsandcontrols…RegisteredActiveXControls选择“MicrosoftCommunicationsControl,version6.0”Insert确定OK关闭此子窗口完成添加操作标志如上图所示。基本框架2、将刚才添加添加到控件列表框内的串口控件添加到基本框架内点击控件列表框内的串口控件,此时光标变为“十”形,在基本框架内随意划取一矩形区域,即可以添加串口控件,不需要修改此控件的大小及位置,因为程编译运行后此控件是看不到的,步骤结果如下图:3、继续往基本框架内添加用于编辑发送数据的输入编辑框及

3、输出编辑框,同理选择控件列表框内的“编辑框控件”,以相同的操作即可添加两个编辑窗口及一个按纽控件如下图所示:选择其中任意一个作为输入编辑框及输出编辑框这两个窗口需要修改大小及位置,因为程序运行后将会显示而串口通信控件则不显示,上图是运行后的效果。4、对以上四个控件编程步骤如下:a、右击串口通信控件建立类向导MembervariablesControlIDS中选择IDC_MSCOMM1addvariable…Membervariablename中输入控件变量名m_ctrlComm(变量名可以随意选取,但程序中应与所取变量名一致)OK确定b、

4、右击编辑框、属性、常规、ID:中输入ID号,此编辑框用于接收显示数据的其ID号为IDC_EDIT_RXDATA(可以随意选取,但程序中应与所取ID号一致),再在此窗口的样式中勾选”多行”,同时将“自动水平滚动(T)”勾选去掉,再勾选“垂直滚动(V)”,此勾选操作是用于垂直多行显示的,按回车后即可输入;同理右击另一编辑框输入ID号为IDC_EDIT_TXDATA此编辑框用于编辑发送数据的,同样也选上用于垂直多行显示,发送框可以不用垂直多行显示;再为按钮控件添加ID号,为IDC_BUTTON_MANUALSEND,并将标题中的“Button1

5、”改为“发送”,功能是按一次就把发送编辑框中的内容发送一次。C、为以上两个编辑框添加变量,与串口通信控件一样添加,为IDC_EDIT_RXDATA添加CString型变量m_strRXData;为IDC_EDIT_TXDATA添加CString型变量m_strTXData。说明:m_strRXData和m_strTXData分别用来放入接收和发送的字符数据。D、添加串口事件消息处理函数OnComm()打开ClassWizard->MessageMaps,选择IDC_MSCOMM1,双击消息OnComm,将弹出的对话框中将函数名改为OnCo

6、mm,(好记而已)OK。这个函数是用来处理串口消息事件的,如每当串口接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,我们刚才添加的函数就会执行,我们在OnComm()函数加入相应的处理代码就能实现自已想要的功能了。在函数中加入如下代码:提示1:此句以下才是我们要添加的语句代码段1:voidCScommTestDlg::OnComm(){//TODO:AddyourcontrolnotificationhandlercodehereVARIANTvariant_inp;//定义一个VARIANT类对象COleSafeArray

7、safearray_inp;//定义一个COleSafeArray对象LONGlen,k;BYTErxdata[2048];//设置BYTE数组AN8—intterthatisnotsigned.CStringstrtemp;if(m_ctrlComm.GetCommEvent()==2)//事件值为2表示接收缓冲区内有数据{////以下你可以根据自己的通信协议加入处理代码variant_inp=m_ctrlComm.GetInput();//读缓冲区safearray_inp=variant_inp;//VARIANT型变量转换为Col

8、eSafeArray型变量len=safearray_inp.GetOneDimSize();for(k=0;k

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。