vc基于mscomm控件的串行通訊用法實例

vc基于mscomm控件的串行通訊用法實例

ID:9245494

大?。?2.50 KB

頁數(shù):3頁

時間:2018-04-25

vc基于mscomm控件的串行通訊用法實例_第1頁
vc基于mscomm控件的串行通訊用法實例_第2頁
vc基于mscomm控件的串行通訊用法實例_第3頁
資源描述:

《vc基于mscomm控件的串行通訊用法實例》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。

1、VC基于MSComm控件的串行通訊用法實例1.建立項目:打開VC++6.0,建立一個基于對話框的MFC應用程序SCommTest(與我源代碼一致,等會你會方便一點);2.在項目中插入MSComm控件??選擇Project菜單下AddToProject子菜單中的ComponentsandControls…選項,在彈出的對話框中雙擊RegisteredActiveXControls項(稍等一會,這個過程較慢),則所有注冊過的ActiveX控件出現(xiàn)在列表框中。選擇MicrosoftCommunication

2、sControl,version6.0,,單擊Insert按鈕將它插入到我們的Project中來,接受缺省的選項。(如果你在控件列表中看不到MicrosoftCommunicationsControl,version6.0,那可能是你在安裝VC6時沒有把ActiveX一項選上,重新安裝VC6,選上ActiveX就可以了),這時在ClassView視窗中就可以看到CMSComm類了,(注意:此類在ClassWizard中看不到,重構clw文件也一樣),并且在控件工具欄Controls中出現(xiàn)了電話圖標(如

3、圖1所示),現(xiàn)在要做的是用鼠標將此圖標拖到對話框中,程序運行后,這個圖標是看不到的。3.利用ClassWizard定義CMSComm類控制對象?打開ClassWizard->MemberViariables選項卡,選擇CSCommTestDlg類,為IDC_MSCOMM1添加控制變量:m_ctrlComm,這時你可以看一看,在對話框頭文件中自動加入了//{{AFX_INCLUDES()?#include"mscomm.h"?//}}AFX_INCLUDES(這時運行程序,如果有錯,那就再從頭開始)。4

4、.在對話框中添加控件?向主對話框中添加兩個編輯框,一個用于接收顯示數(shù)據(jù)ID為IDC_EDIT_RXDATA,另一個用于輸入發(fā)送數(shù)據(jù),ID為IDC_EDIT_TXDATA,再添加一個按鈕,功能是按一次就把發(fā)送編輯框中的內(nèi)容發(fā)送一次,將其ID設為IDC_BUTTON_MANUALSEND。別忘記了將接收編輯框的Properties->Styles中把Miltiline和VerticalScroll屬性選上,發(fā)送編輯框若你想輸入多行文字,也可選上Miltiline。再打開ClassWizard->Membe

5、rViariables選項卡,選擇CSCommTestDlg類,為IDC_EDIT_RXDATA添加CString變量m_strRXData,為IDC_EDIT_TXDATA添加CString變量m_strTXData。說明:m_strRXData和m_strTXData分別用來放入接收和發(fā)送的字符數(shù)據(jù)。??????休息一會吧?我們天天與電腦打交道,要注意保重,我現(xiàn)在在單杠上做引體向上可以來40次,可我都32了,佩服嗎?。。。。。。好了,再接著來,下面是關鍵了:5.添加串口事件消息處理函數(shù)OnComm

6、()打開ClassWizard->MessageMaps,選擇類CSCommTestDlg,選擇IDC_MSCOMM1,雙擊消息OnComm,將彈出的對話框中將函數(shù)名改為OnComm,(好記而已)OK。?這個函數(shù)是用來處理串口消息事件的,如每當串口接收到數(shù)據(jù),就會產(chǎn)生一個串口接收數(shù)據(jù)緩沖區(qū)中有字符的消息事件,我們剛才添加的函數(shù)就會執(zhí)行,我們在OnComm()函數(shù)加入相應的處理代碼就能實現(xiàn)自已想要的功能了。請你在函數(shù)中加入如下代碼:voidCSCommTestDlg::OnComm()?{???//TO

7、DO:Addyourcontrolnotificationhandlercodehere???VARIANTvariant_inp;???COleSafeArraysafearray_inp;???LONGlen,k;???BYTErxdata[2048];//設置BYTE數(shù)組An8-bitintegerthatisnotsigned.???CStringstrtemp;???if(m_ctrlComm.GetCommEvent()==2)//事件值為2表示接收緩沖區(qū)內(nèi)有字符???{?????????

8、???////////以下你可以根據(jù)自己的通信協(xié)議加入處理代碼???????variant_inp=m_ctrlComm.GetInput();//讀緩沖區(qū)???????safearray_inp=variant_inp;//VARIANT型變量轉換為ColeSafeArray型變量???????len=safearray_inp.GetOneDimSize();//得到有效數(shù)據(jù)長度???????for(k=0;k

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。