VS之MFC串口通信的编写教程_第1页
VS之MFC串口通信的编写教程_第2页
VS之MFC串口通信的编写教程_第3页
VS之MFC串口通信的编写教程_第4页
VS之MFC串口通信的编写教程_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、Stringstr,str1,n;/定义字符串GetDlgItemText(IDC_BUTTON_OPEN,str);CWnd*h1;h1=GetDlgItem(IDC_BUTTON_OPEN);/指向控件的captionif(!m_mscom.get_PortOpen()m_comb2.GetLBText(m_comb2.GetCurSel(),str1/);取得所选的字符串,并存放在strl里面/ 设置输入方式为二进制方式/波特率为(波特率组&合框)无校验,8数据位,/ 设置当前接收区数据长度为 1024/ 缓冲区一个字符引发事件/设置RT允许/ 打开串口/ 这句话很关键str1=

4、str1+','+'n'+','+'8'+','+'1'm_mscom.put_CommPort(m_comb1.GetCurSel()+1);/选择串口m_mscom.put_InputMode(1);m_mscom.put_Settings(str1);1个停止位m_mscom.put_InputLen(1024);m_mscom.put_RThreshold(1);m_mscom.put_RTSEnable(1);m_mscom.put_PortOpent(rue);if(m_mscom.ge

5、t_PortOpen()str=_T("关闭串口");UpdateData(true);/ 改变按钮名称为关闭串口”h1->SetWindowText(str);elsem_mscom.put_PortOpenf(alse);if(str!=_T("打开用口)str=_T("打开用口");UpdateData(true);h1->SetWindowText(str);/改变按钮名称为打开串口voidC串口V2Dlg:OnBnClickedButtonSend(/发送数据按钮程/TODO:在此添加控件通知处理程序代码?UpdateDa

6、tat(rue);/更新控件数据m_mscom.put_Output(COleVariant(m_Editsend)/)/;把发送编辑框的数据发送出去voidC串口V2Dlg:OnBnClickedButtonClean(y消除数据按钮程序/TODO:在此添加控件通知处理程序代码m_EditReceive=_T("");/给接收编辑框发送空格符UpdateDataf(alse);/更新数据voidC串口V2Dlg:OnBnClickedButtonClose(/退出按钮程序/TODO:在此添加控件通知处理程序代码if(m_mscom.get_PortOpen()m_msco

7、m.put_PortOpenf(alse);CDialogEx:OnCancel();voidC串口V2Dlg:OnCommMscomm1()/用口控件程序/TODO:在此处添加消息处理程序代码if(m_mscom.get_CommEvent()=2)charstr1024=0;longk;VARIANTInputData=m_mscom.get_Input();/读缓冲区COleSafeArrayfs;fs=InputData;/VARIANT型变a量转换为COleSafeArra型变量for(k=0;k<fs.GetOneDimSize();k+)fs.GetElement(&

8、;k,str+k);转换为BYTE型数组m_EditReceive+=str;/接收到编辑框里面/SetTimer(1,10,NULL);/延时10msUpdateDataf(alse);/串口选择组合框CStringstr;inti;for(i=0;i<15;i+)str.Format(_T("com%d"),i+1);m_comb1.InsertString(i,str);m_comb1.SetCurSel(0/;预置COM口/波特率选择组合框CStringstr1=_T("300"),_T("600"),_T("

9、1200"),_T("2400"),_T("4800"),_T("9600"),_T("19200"),_T("38400"),_T("43000"),_T("56000"),_T("57600"),_T("115200");for(inti=0;i<12;i+)intjudge_tf=m_comb2.AddString(str1i);if(judge_tf=CB_ERR)|(judge_tf=CB_ERRSPACE)MessageBox(_T"(buildbauderror!");m_comb2.SetCurSel(5/)/;预置波特率为"9600"写完之后编译程序五、调试我们写好的串口工具我们下面用51单片机调试一下,结果也是成功的;m_Edit.SetSel(-1,-1);this->SetDlgItemTextW(IDC_EDIT1,m_EditReceive)将m_EditReceiv呐容显示至UID为IDC_EDIT1的编辑框的最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论