VS2010之MFC串口通信的編寫教程_第1頁
VS2010之MFC串口通信的編寫教程_第2頁
VS2010之MFC串口通信的編寫教程_第3頁
VS2010之MFC串口通信的編寫教程_第4頁
VS2010之MFC串口通信的編寫教程_第5頁
已閱讀5頁,還剩28頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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_Edi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論