版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VS2010 之 MFC 串口通信教程說(shuō)明:本人也是剛剛?cè)腴T(mén) MFC,參照一些資料和源代碼就實(shí)驗(yàn)做了這么一個(gè)串口通信工 具!資料來(lái)源主要有雞啄米博客網(wǎng)站,里面有詳細(xì)的學(xué)習(xí)教程!網(wǎng)上的 VS2010 源代碼都比 較少,建議大家先理解一個(gè)源代碼的構(gòu)架和結(jié)構(gòu)再深入學(xué)習(xí)!本文檔可以一步一步教你從建 立工程到實(shí)驗(yàn)調(diào)試,是一個(gè)非常完整的教程!非常適合新手練習(xí)!賀州學(xué)院大學(xué)生創(chuàng)新基地實(shí)驗(yàn)室在制作串口通信所遇到的問(wèn)題:編輯框的滾動(dòng)條不會(huì)隨著數(shù)據(jù)的更新保持在最后一行! 接下來(lái)我們開(kāi)始講解 MFC 串口通信的制作:打開(kāi) VS2010 軟件,然后新建一個(gè)項(xiàng)目,如下圖所示;我們要用到就是對(duì)話框模塊,所以選擇如下圖所示
2、最大化框最好別選,因?yàn)楸救爽F(xiàn)在也沒(méi)搞出來(lái);點(diǎn)擊完成就新建好一個(gè)工程了,等資源就緒之后我們就可以進(jìn)行制作了;我們可以看到就緒之后的界面如下圖所示,按照步驟把原來(lái)的靜態(tài)文本框和確定按鈕、取消 按鈕刪掉;二、為我們的對(duì)話框添加控件添加兩個(gè)組合邊框,并放置好位置;修改組合邊框顯示的名稱(chēng);在組合邊框里面添加編輯文本框;在這一步一定要小心選擇右邊的屬性;AKIVZ aiciasoft Visual 5tdlo丈小D M 4; VB*D 乃B U *u 1HKGI 工貝maSBOet- .廠 i -門(mén),謝于i:占務(wù)0七PlR femr( DiLnjmuo? - oiacott6stk hxi g CwuU_
3、一:_3IBLH*UT2SWX TatU 洪 8Gey Bc)11* Wg *)& |創(chuàng)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 為 打開(kāi)串口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“這一步是把串口控件添加到對(duì)話框中來(lái);選擇我們需要的串口控件如下圖所示;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)權(quán)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出魚(yú)丄卜士疸手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戶(hù)廠 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戶(hù)吩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*陽(yáng)Id 內(nèi) Sl0TotUlwcydt*lS6UltHffarSlteM2i 聲2。?ErtdMl0KTSlxhUPlw$4tursJW.nOiiHhrth*H0TrSetWindowText(str);/ 改變按鈕名稱(chēng)為關(guān)閉串口elsem_mscom.put_PortOpen(false );if (str!=_T( 打開(kāi)串口 )str=_T( 打開(kāi)串口 ); UpdateData( true ); h1-SetWind
11、owText(str);/ 改變按鈕名稱(chēng)為打開(kāi)串口void C 串口 V2Dlg:OnBnClickedButtonSend() / 發(fā)送數(shù)據(jù)按鈕程/ TODO: 在此添加控件通知處理程序代碼 ?UpdateData( true ); / 更新控件數(shù)據(jù)m_mscom.put_Output(COleVariant(m_Editsend); / 把發(fā)送編輯框的數(shù)據(jù)發(fā)送出去void C 串口 V2Dlg:OnBnClickedButtonClean() / 清除數(shù)據(jù)按鈕程序 / TODO: 在此添加控件通知處理程序代碼m_EditReceive=_T( ); / 給接收編輯框發(fā)送空格符UpdateD
12、ata( false ); / 更新數(shù)據(jù)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(); / 讀緩沖區(qū) COleSafeArray fs;fs=InputData; /VARIANT型變量轉(zhuǎn)換為 COleSafeArray 型變量 for (k=0;kfs.GetOneDimSize();k+)fs.GetElement(&k,str+k); / 轉(zhuǎn)換為 BYTE型數(shù)組m_EditReceive+=str; /SetTimer(1,10,NULL); UpdateData( false );/ 接收到編輯框里面/ 延時(shí) 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); / 預(yù)置 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); / 預(yù)置波特率為 9600 寫(xiě)完之后編譯程序4&K1V/ llciunofl Vi9:啊”處 tco| fuq IrsE門(mén)Q1 n.J / o二巧,:qQ A二訛? 阿淪伽)“ma -30 IC二杯 ifFRQrri*rnn-J 口X re GJ il甲3e JSuunc TO1Ctrltuit!219220ni竊Mig 欣 uUtHHSTQ ewriKiia).】葦譯立功后社f】歆齊茁時(shí)找們鍵耳為對(duì)話亡 進(jìn)
16、廿口試.諂試哄左,(步咪企擇開(kāi)妬小行F洞 試戈2已菜單|r的怏捷技鉗改刃3的為!T畀事crC|Siteiita(true ;3K樂(lè)徨 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 內(nèi)容顯示到 ID為 IDC_EDIT1的編輯框的最后 位置m_Edit.LineScro
17、ll(m_Edit.GetLineCount()-1,0); / 將垂直滾動(dòng)條滾動(dòng)到最后一修改一下接收編輯框的屬性,發(fā)送編輯框不用做修改;再調(diào)試一下發(fā)現(xiàn)問(wèn)題解決了!六、修改圖標(biāo)和軟件信息我們?nèi)サ巾?xiàng)目所在的文件夾中,如下圖所示; 3 b-A eaB.-J.a-rMH * JU.M5S3 ynaJ*reHweH vnso n=rvoM2S口. -xo3yoM$F 0 SA2f3- fhlX-u.ou- 0FFnmufa- n* 9門(mén)=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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國(guó)孕婦營(yíng)養(yǎng)保健品行業(yè)營(yíng)銷(xiāo)模式及投資前景展望報(bào)告版
- 2024-2030年中國(guó)奧他米韋項(xiàng)目申請(qǐng)報(bào)告
- 2024-2030年中國(guó)大型購(gòu)物中心行業(yè)經(jīng)營(yíng)策略及投資規(guī)劃分析報(bào)告
- 2024-2030年中國(guó)國(guó)際電路租賃行業(yè)前景趨勢(shì)規(guī)劃研究報(bào)告
- 眉山職業(yè)技術(shù)學(xué)院《射頻電路與系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 茂名職業(yè)技術(shù)學(xué)院《編程語(yǔ)言基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度企業(yè)管理制度與勞動(dòng)合同修訂及員工權(quán)益保障協(xié)議3篇
- 影視后期制作教案第01周-02-1圖層
- 2024事業(yè)單位工作長(zhǎng)期合同工特殊工種安全協(xié)議樣本2篇
- 2024年標(biāo)準(zhǔn)采購(gòu)合同管理細(xì)則版B版
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的智能電子秤設(shè)計(jì)
- (高職)電子商務(wù)基礎(chǔ)電子課件教學(xué)PPT(完整版)
- 商務(wù)談判評(píng)分標(biāo)準(zhǔn)
- Q∕SY 05038.4-2018 油氣管道儀表檢測(cè)及自動(dòng)化控制技術(shù)規(guī)范 第4部分:監(jiān)控與數(shù)據(jù)采集系統(tǒng)
- 建筑工程施工特點(diǎn)及傷亡事故預(yù)防措施
- 設(shè)備故障報(bào)修維修記錄單
- 一般行業(yè)建設(shè)項(xiàng)目安全條件和設(shè)施綜合分析報(bào)告
- 工程水文學(xué)總復(fù)習(xí)綜述
- 蹲踞式跳遠(yuǎn)教學(xué)課件
- 智能系統(tǒng)工程自評(píng)報(bào)告
- 賽柏斯涂層防水施工工法
評(píng)論
0/150
提交評(píng)論