VS2010之MFC串口通信的编写教程.doc

上传人:hw****26 文档编号:4131314 上传时间:2019-09-28 格式:DOC 页数:33 大小:5.86MB
下载 相关 举报
VS2010之MFC串口通信的编写教程.doc_第1页
第1页 / 共33页
VS2010之MFC串口通信的编写教程.doc_第2页
第2页 / 共33页
VS2010之MFC串口通信的编写教程.doc_第3页
第3页 / 共33页
VS2010之MFC串口通信的编写教程.doc_第4页
第4页 / 共33页
VS2010之MFC串口通信的编写教程.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、VS2010 之 MFC 串口通信教程 说明:本人也是刚刚入门 MFC,参照一些资料和源代码就实验做了这么一个串口通信工 具!资料来源主要有鸡啄米博客网站,里面有详细的学习教程!网上的 VS2010 源代码都比 较少,建议大家先理解一个源代码的构架和结构再深入学习!本文档可以一步一步教你从建 立工程到实验调试,是一个非常完整的教程!非常适合新手练习! 贺州学院大学生创新基地实验室 在制作串口通信所遇到的问题:编辑框的滚动条不会随着数据的更新保持在最后一行! 接下来我们开始讲解 MFC 串口通信的制作: 一、 打开 VS2010 软件,然后新建一个项目,如下图所示; 我们要用到就是对话框模块,所

2、以选择如下图所示 最大化框最好别选,因为本人现在也没搞出来; 点击完成就新建好一个工程了,等资源就绪之后我们就可以进行制作了; 我们可以看到就绪之后的界面如下图所示,按照步骤把原来的静态文本框和确定按钮、取消 按钮删掉; 二、为我们的对话框添加控件 添加两个组合边框,并放置好位置; 修改组合边框显示的名称; 在组合边框里面添加编辑文本框; 在这一步一定要小心选择右边的属性; 这一步是把串口控件添加到对话框中来; 选择我们需要的串口控件如下图所示; 三、为编辑框,Combox 框,串口控件添加变量; 四、为按钮和串口控件添加程序函数 void C串口V2Dlg:OnBnClickedButton

3、Open()/打开串口按钮程序 / TODO: 在此添加控件通知处理程序代码? CString str,str1,n; /定义字符串 GetDlgItemText(IDC_BUTTON_OPEN,str); CWnd *h1; h1=GetDlgItem(IDC_BUTTON_OPEN); /指向控件的caption if(!m_mscom.get_PortOpen() m_comb2.GetLBText(m_comb2.GetCurSel(),str1);/取得所选的字符串,并存放在str1里面 str1=str1+,+n+,+8+,+1; /这句话很关键 m_mscom.put_CommP

4、ort(m_comb1.GetCurSel()+1); /选择串口 m_mscom.put_InputMode(1); /设置输入方式为二进制方式 m_mscom.put_Settings(str1); /波特率为(波特率组合框)无校验,8数据位,1个停止位 m_mscom.put_InputLen(1024); /设置当前接收区数据长度为1024 m_mscom.put_RThreshold(1); /缓冲区一个字符引发事件 m_mscom.put_RTSEnable(1); /设置RT允许 m_mscom.put_PortOpen(true); /打开串口 if(m_mscom.get_P

5、ortOpen() str=_T(“关闭串口“); UpdateData(true); h1-SetWindowText(str); /改变按钮名称为关闭串口” else m_mscom.put_PortOpen(false); if(str!=_T(“打开串口) str=_T(“打开串口“); UpdateData(true); h1-SetWindowText(str); /改变按钮名称为打开串口 void C串口V2Dlg:OnBnClickedButtonSend()/发送数据按钮程 / TODO: 在此添加控件通知处理程序代码? UpdateData(true); /更新控件数据 m

6、_mscom.put_Output(COleVariant(m_Editsend);/把发送编辑框的数据发送出去 void C串口V2Dlg:OnBnClickedButtonClean()/清除数据按钮程序 / TODO: 在此添加控件通知处理程序代码 m_EditReceive=_T(“); /给接收编辑框发送空格符 UpdateData(false); /更新数据 void C串口V2Dlg:OnBnClickedButtonClose()/退出按钮程序 / TODO: 在此添加控件通知处理程序代码 if(m_mscom.get_PortOpen() m_mscom.put_PortOp

7、en(false); CDialogEx:OnCancel(); void C串口V2Dlg:OnCommMscomm1()/串口控件程序 / TODO: 在此处添加消息处理程序代码 if(m_mscom.get_CommEvent()=2) char str1024=0; long k; VARIANT InputData=m_mscom.get_Input(); /读缓冲区 COleSafeArray fs; fs=InputData;/VARIANT型变量转换为COleSafeArray型变量 for(k=0;kfs.GetOneDimSize();k+) fs.GetElement(

8、/转换为BYTE型数组 m_EditReceive+=str; / 接收到编辑框里面 /SetTimer(1,10,NULL); /延时10ms UpdateData(false); / 串口选择组合框 CString str; int i; for(i=0;i15;i+) str.Format(_T(“com %d“),i+1); m_comb1.InsertString(i,str); m_comb1.SetCurSel(0);/预置COM口 /波特率选择组合框 CString str1=_T(“300“),_T(“600“),_T(“1200“),_T(“2400“),_T(“4800“

9、),_T(“9600“), _T(“19200“),_T(“38400“),_T(“43000“),_T(“56000“),_T(“57600“),_T(“115200“); for(int i=0;iSetDlgItemTextW(IDC_EDIT1,m_EditReceive);/将m_EditReceive内容显示到ID为IDC_EDIT1的编辑框的最后 位置 m_Edit.LineScroll(m_Edit.GetLineCount()-1,0);/将垂直滚动条滚动到最后一 修改一下接收编辑框的属性,发送编辑框不用做修改; 再调试一下发现问题解决了! 六、修改图标和软件信息 我们去到项目所在的文件夹中,如下图所示; The End! 作者:刘小二 2014 年 5 月 2 日星期 五

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。