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

下载本文档

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

文档简介

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

2、最大化框最好别选,因为本人现在也没搞出来;点击完成就新建好一个工程了,等资源就绪之后我们就可以进行制作了;我们可以看到就绪之后的界面如下图所示,按照步骤把原来的静态文本框和确定按钮、取消 按钮删掉;二、为我们的对话框添加控件添加两个组合边框,并放置好位置;修改组合边框显示的名称;在组合边框里面添加编辑文本框;在这一步一定要小心选择右边的属性;AKIVZ aiciasoft Visual 5tdlo丈小D M 4; VB*D 乃B U *u 1HKGI 工貝maSBOet- .厂 i -门,谢于i:占务0七PlR femr( DiLnjmuo? - oiacott6stk hxi g CwuU_

3、一:_3IBLH*UT2SWX TatU 洪 8Gey Bc)11* Wg *)& |创H J *0p*55 C0KU (1 lot UrU Cibtrl x em Ccatrtl lt44 CU B Cw*e raMrU Srsuax CarrolAillV/ llcianoft Vt9i .il StMlloXfPi MU丿n0) ! C Ur a|为也 I: *fp*1按舌修改f*;5文本梃匚&幼M1 IK_SVATm CQ ;LH| f|JfiMm )Accent Ftl PGteAHp T*Uft1p.Xaa| hu9fill*1B4FtbFl3n* Grde幻|M Alien fP

4、7T Uftrutfrfii2.tic I2nF4SurfcarlseT4gPdteViZTtw4 ni,w2“I CU1 m 由匚41I1VZ aictasuft Vis.11 StMlloJWWWBD XiafiflUMUI ga 电2UK Qi T firmtavt r*11p*55 C0KU lot KeyUaUlo CibtrlKO can r 0GvrG late *& PidM班小 CftlMklMr C mtrl IF hMr Ccatr tlCaW BrMrlSribbK C匚& XXWOMfflO) 91(r 1AQ) FBvO HKOI G SMs WPA 电肪抽,.,C

5、1,/#&;P已3 r;Q匚I丛|固宙H r . . ?翌于n J 八十Ptw *1Z申Ivi*r2 iKtSfr :叵 I HEOfOButtorW EK IVTTOOiC*aU 2fSKcoxi 为 打开串口3 ttftID为 ltX_aJTT0N_CW4“JUC_MAccctft riles rlje p frFn* A I X 二 ftfvCi Xx Pl* M1UKal 】DMriXgre it pa rut* PUt u rt 2“ Platte idt* P<e TUt TfM IwywQ F<Vritc*l ALic Vift.U TrwPdw rus 2“口r r(

6、in naIM 17 1IAL0C *r4rCento *im Q* Nklot 14 t Cha)Atm Clip SikltncsCrfMi4 Zd ElpContylttfMm cu Font 6x)Wr i 1rtlse2 Bvri*eUy4 uyott HLUm SAIZ FUt UcU Kiit t4*le paFdieT心Pd2“这一步是把串口控件添加到对话框中来;选择我们需要的串口控件如下图所示;AllV? aiciaauft Visual StdoX VB 6Mj i J* J; J J 4 -J -i 町e! p 凸 rlc 八*i u I (Ii *?:瞅叭rinKXQr

7、 r FlPdM丫心Kif*!8ecpuTCntrpaC4nif tU4ruipia、p Ou)4tmP4皿沁ma2“I Cxo,iZFclseMf、;ronjruseCantxl Fra PPGmI Fant &)lfar i cmt *1 Sc P&1*I TOnr_*z.MWjo-V -1PUiaVIPI Uf &rUU. P4UnX ESFduieaxe lc*emTrottirueite lcoXW 0MI1)權BE 处 09 tCQ) Ua)(Ms gw,! c rH.v.2电C七+皿I3*sl-? xtar r( WLn_inuxj oia厂丽ZIP:J ! W i m / cr

8、X L皿XK 吃 1XALM. jA| rosettaaltil* A11 an 1丫心Kif*!Ctpuco孚62CntpaCni “isfdwg1 P4Qi*沁皿2“Cor5Ke l Helpt 2 ContxcaruseControl Fr*a Plt*PGmrM ?(y shu mMaricmtal Sc P7roIID.I7.MNJ0-Sr初PUiamPdUH &rUU. F4UctX ESFduiejxe JcTrot*em*iruit JcTmy 1* 为编辑框, Combox 框,串口控件添加变量;XI g出鱼丄卜士疸手1ZJMJ*夂RZ*口淫XJ Q/亠pnjTcaj/feX

9、Q hkTmrI : d A To、.2 “a*r I乔販孔妙弘耳店由豈&畀杂工引K凶商引TbF曾宇聘饌岁 Cl*- ZU4 匸初 E 匕口刁遇N匚tTd乜Li叫厂V Wl 0戶厂 V7厂nmrzi*r. xwmanritrr y 厂 QT U合厂R二-MOito EBWM4 iT : 11 ffi I 1 a aa -)ru xgi 心,別 mg出 wzq “me (ov? w & “su r9 owxs iy uocoti zAnir( 1t%i呵“5PiPd4OMlaJDJnsXraw“、*勺paxF0戶吩1Cd1P4)XMtJ UQ)E*WInaF:齐Hi F*u叫umng5PJs3

10、9B(r . b押re w口心h*Z耳呼 K0$匸&4IZ(AilMs)iic.rtprwri ru itmrAchS“KiHuTfMnlie foxumZals/wZic*阳Id 內 Sl0TotUlwcydt*lS6UltHffarSlteM2i 声2。?ErtdMl0KTSlxhUPlw$4tursJW.nOiiHhrth*H0TrSetWindowText(str);/ 改变按钮名称为关闭串口elsem_mscom.put_PortOpen(false );if (str!=_T( 打开串口 )str=_T( 打开串口 ); UpdateData( true ); h1-SetWind

11、owText(str);/ 改变按钮名称为打开串口void C 串口 V2Dlg:OnBnClickedButtonSend() / 发送数据按钮程/ TODO: 在此添加控件通知处理程序代码 ?UpdateData( true ); / 更新控件数据m_mscom.put_Output(COleVariant(m_Editsend); / 把发送编辑框的数据发送出去void C 串口 V2Dlg:OnBnClickedButtonClean() / 清除数据按钮程序 / TODO: 在此添加控件通知处理程序代码m_EditReceive=_T( ); / 给接收编辑框发送空格符UpdateD

12、ata( false ); / 更新数据void C 串口 V2Dlg:OnBnClickedButtonClose() / 退出按钮程序 / TODO: 在此添加控件通知处理程序代码if (m_mscom.get_PortOpen() m_mscom.put_PortOpen(false );CDialogEx:OnCancel(); void C串口V2Dlg:OnCommMscomm1/(/) 串口控件程序 / TODO: 在此处添加消息处理程序代码if (m_mscom.get_CommEvent()=2)char str1024=0;long k;VARIANT InputData=

13、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); UpdateData( false );/ 接收到编辑框里面/ 延时 10ms/ 串口选择组合框 CString str;int i;for (i=0;i15;i+)str.Format(_T

14、( 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;i12;i+)int judge_tf=m_comb2.AddString(str1i);if (ju

15、dge_tf=CB_ERR)|(judge_tf=CB_ERRSPACE) MessageBox(_T(build baud error!); m_comb2.SetCurSel(5); / 预置波特率为 9600 写完之后编译程序4&K1V/ llciunofl Vi9:啊”处 tco| fuq IrsE门Q1 n.J / o二巧,:qQ A二讹? 阿沦伽)“ma -30 IC二杯 ifFRQrri*rnn-J 口X re GJ il甲3e JSuunc TO1Ctrltuit!219220ni窃Mig 欣 uUtHHSTQ ewriKiia).】苇译立功后社f】歆齐茁時找们键耳为对话亡 進

16、廿口试.谄试哄左,(步咪企择开妬小行F洞 试戈2已菜单|r的怏捷技钳改刃3的为!T畀事crC|Siteiita(true ;3K乐徨 1雷rcrdcoa. put .Output _E*iiteivl) J;/ 1J.- I-void C*CV25lt:CrCrCUckfi3uttr/Cld C,OV2Dlc:aOutQ mCIomCJ/. ISMS.,(ff TOW:在此多H笠件电伏氏t2SetDlgItemTextW(IDC_EDIT1,m_EditReceive); / 将m_EditReceive 内容显示到 ID为 IDC_EDIT1的编辑框的最后 位置m_Edit.LineScro

17、ll(m_Edit.GetLineCount()-1,0); / 将垂直滚动条滚动到最后一修改一下接收编辑框的属性,发送编辑框不用做修改;再调试一下发现问题解决了!六、修改图标和软件信息我们去到项目所在的文件夹中,如下图所示; 3 b-A eaB.-J.a-rMH * JU.M5S3 ynaJ*reHweH vnso n=rvoM2S口. -xo3yoM$F 0 SA2f3- fhlX-u.ou- 0FFnmufa- n* 9门=K4八fs於 - u HurusivriuwV =【hlhy 1 rUA m 1JJf f y :H了町乜4 ?乙;?;? _帝 wsmw a 昼 m at:x21 -3_WOO5 W4BEU*5 yaw? P6B I U 二 t;DPHf ?-39

温馨提示

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

评论

0/150

提交评论