收藏 分销(赏)

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

上传人:人****来 文档编号:3135792 上传时间:2024-06-19 格式:DOC 页数:33 大小:5.85MB
下载 相关 举报
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:OnBnClickedButtonOpen()/打开串口按钮程序/ TODO: 在此添加控件通知处理程

3、序代码?CString str,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);/取得所选的字符串,并存放在str1里面str1=str1+,+n+,+8+,+1;/这句话很关键m_mscom.put_CommPort(m_comb1.GetCurSel()+1);/选择串口m_mscom.put_In

4、putMode(1);/设置输入方式为二进制方式m_mscom.put_Settings(str1);/波特率为(波特率组合框)无校验,8数据位,1个停止位m_mscom.put_InputLen(1024);/设置当前接收区数据长度为1024m_mscom.put_RThreshold(1);/缓冲区一个字符引发事件m_mscom.put_RTSEnable(1);/设置RT允许m_mscom.put_PortOpen(true);/打开串口if(m_mscom.get_PortOpen()str=_T(关闭串口);UpdateData(true);h1-SetWindowText(str)

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

6、dButtonClean()/清除数据按钮程序/ TODO: 在此添加控件通知处理程序代码m_EditReceive=_T();/给接收编辑框发送空格符UpdateData(false);/更新数据void C串口V2Dlg:OnBnClickedButtonClose()/退出按钮程序/ TODO: 在此添加控件通知处理程序代码if(m_mscom.get_PortOpen()m_mscom.put_PortOpen(false);CDialogEx:OnCancel();void C串口V2Dlg:OnCommMscomm1()/串口控件程序/ TODO: 在此处添加消息处理程序代码if(

7、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(&k,str+k);/转换为BYTE型数组 m_EditReceive+=str; /接收到编辑框里面/SetTimer(1,10,NULL);/延时10msUpdateData(false);/ 串口选择组

8、合框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),_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日星期五

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服