資源描述:
《串口調(diào)試助手源程序編程詳細(xì)過程》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、目錄:1.建立項(xiàng)目??2.在項(xiàng)目中插入MSComm控件3.利用ClassWizard定義CMSComm類控制變量4.在對話框中添加控件??5.添加串口事件消息處理函數(shù)OnComm()6.打開和設(shè)置串口參數(shù)7.發(fā)送數(shù)據(jù)8.發(fā)送十六進(jìn)制字符9.在接收框中以十六進(jìn)制顯示10.如何設(shè)置自動發(fā)送11.什么是VARIANT數(shù)據(jù)類型?如何使用VARIANT數(shù)據(jù)類型?在眾多網(wǎng)友的支持下,串口調(diào)試助手從2001年5月21日發(fā)布至今,短短一個(gè)月,在全國各地累計(jì)下載量近5000人次,在近200多個(gè)電子郵件中,20多人提供了使用測試意見,
2、更有50多位朋友提出要串口調(diào)試助手的源代碼,為了答謝謝朋友們的支持,公開推出我最初用VC控件MSComm編寫串口通信程序的源代碼,并寫出詳細(xì)的編程過程,姑且叫串口調(diào)試助手源程序V1.0或VC串口通訊源程序吧,我相信,如果你用VC編程,那么有了這個(gè)代碼,就可以輕而易舉地完成串口編程任務(wù)了。(也許本文過于詳細(xì),高手就不用看)開始吧:1.建立項(xiàng)目:打開VC++6.0,建立一個(gè)基于對話框的MFC應(yīng)用程序SCommTest(與我源代碼一致,等會你會方便一點(diǎn));2.在項(xiàng)目中插入MSComm控件??選擇Project菜單下Add
3、ToProject子菜單中的ComponentsandControls…選項(xiàng),在彈出的對話框中雙擊RegisteredActiveXControls項(xiàng)(稍等一會,這個(gè)過程較慢),則所有注冊過的ActiveX控件出現(xiàn)在列表框中。選擇MicrosoftCommunicationsControl,version6.0,,單擊Insert按鈕將它插入到我們的Project中來,接受缺省的選項(xiàng)。(如果你在控件列表中看不到MicrosoftCommunicationsControl,version6.0,那可能是你在安裝VC6
4、時(shí)沒有把ActiveX一項(xiàng)選上,重新安裝VC6,選上ActiveX就可以了),這時(shí)在ClassView視窗中就可以看到CMSComm類了,(注意:此類在ClassWizard中看不到,重構(gòu)clw文件也一樣),并且在控件工具欄Controls中出現(xiàn)了電話圖標(biāo)(如圖1所示),現(xiàn)在要做的是用鼠標(biāo)將此圖標(biāo)拖到對話框中,程序運(yùn)行后,這個(gè)圖標(biāo)是看不到的。3.利用ClassWizard定義CMSComm類控制對象打開ClassWizard->MemberViariables選項(xiàng)卡,選擇CSCommTestDlg類,為IDC_MS
5、COMM1添加控制變量:m_ctrlComm,這時(shí)你可以看一看,在對話框頭文件中自動加入了//{{AFX_INCLUDES()#include"mscomm.h"http://}}AFX_INCLUDES(這時(shí)運(yùn)行程序,如果有錯(cuò),那就再從頭開始)。4.在對話框中添加控件向主對話框中添加兩個(gè)編輯框,一個(gè)用于接收顯示數(shù)據(jù)ID為IDC_EDIT_RXDATA,另一個(gè)用于輸入發(fā)送數(shù)據(jù),ID為IDC_EDIT_TXDATA,再添加一個(gè)按鈕,功能是按一次就把發(fā)送編輯框中的內(nèi)容發(fā)送一次,將其ID設(shè)為IDC_BUTTON_MANUALSEN
6、D。別忘記了將接收編輯框的Properties->Styles中把Miltiline和VerticalScroll屬性選上,發(fā)送編輯框若你想輸入多行文字,也可選上Miltiline。再打開ClassWizard->MemberViariables選項(xiàng)卡,選擇CSCommTestDlg類,為IDC_EDIT_RXDATA添加CString變量m_strRXData,為IDC_EDIT_TXDATA添加CString變量m_strTXData。說明:m_strRXData和m_strTXData分別用來放入接收和發(fā)送的
7、字符數(shù)據(jù)。?????休息一會吧?我們天天與電腦打交道,要注意保重,我現(xiàn)在在單杠上做引體向上可以來40次,可我都32了,佩服嗎?。。。。。。好了,再接著來,下面是關(guān)鍵了:5.添加串口事件消息處理函數(shù)OnComm()打開ClassWizard->MessageMaps,選擇類CSCommTestDlg,選擇IDC_MSCOMM1,雙擊消息OnComm,將彈出的對話框中將函數(shù)名改為OnComm,(好記而已)OK。這個(gè)函數(shù)是用來處理串口消息事件的,如每當(dāng)串口接收到數(shù)據(jù),就會產(chǎn)生一個(gè)串口接收數(shù)據(jù)緩沖區(qū)中有字符的消息事件,我們
8、剛才添加的函數(shù)就會執(zhí)行,我們在OnComm()函數(shù)加入相應(yīng)的處理代碼就能實(shí)現(xiàn)自已想要的功能了。請你在函數(shù)中加入如下代碼:voidCSCommTestDlg::OnComm(){???//TODO:Addyourcontrolnotificationhandlercodehere???VARIANTvariant_inp;???COleSafeArraysaf