VS2010 基於MFC 的串列埠通訊上位機總結

2021-08-27 13:49:49 字數 3083 閱讀 6799

vs2010 基於mfc 串列埠通訊上位機,實現串列埠傳送、接收資料及接收資料儲存。開啟vs2010 建立 mfc應用程式,選擇基於對話方塊類 ,勾選最大化框、最小化框後 選擇下一步完成。

void c串列埠dlg::onbnclickedbuttonopen()

}else}}

② 串列埠開啟、關閉 圖示顯示

首先,準備好2個icon 圖示, 在資源檢視內右鍵—>新增資源—>匯入 ,選擇2個icon。 匯入後自動分配了id: idi_icon1\ idi_icon2 .

在bool c串列埠dlg::oninitdialog() 內新增如下**:

//m_hicon_open:串列埠開啟圖示的hicon 型別的成員變數

//m_hicon_close :串列埠關閉圖示的hicon 型別的成員變數

//loadicon從與應用程式例項相關聯的可執行檔案(.exe)檔案中載入指定的圖示資源

m_hicon_open = loadicon(afxgetinstancehandle(),makeintresource(idi_icon1));

m_hicon_close = loadicon(afxgetinstancehandle(),makeintresource(idi_icon2));

m_icon.seticon(m_hicon_close); //設定初始顯示為關閉圖示

③選擇串列埠 與 波特率 的 combo box 設定

在bool c串列埠dlg::oninitdialog() 內新增如下**:

// 串列埠組合框:顯示com1~com15

cstring str;

for(i=0;i<15;i++)

m_comb1.setcursel(0);

//波特率組合框

cstring str1=;

for(int i = 0; i<8 ; i++)

m_comb3.setcursel(7);

//執行次數選項框

int i;

cstring str2=;

for(int i = 0; i<9 ; i++)

m_runtime.setcursel(0);

④ radio選擇框設定,傳送資料按鈕

多個radio button 將第乙個的group改為true 按照tab順序會將其他radio button 分為一組,返回值分別為0,1,2 …

雙擊傳送資料按鈕,新增控制程式:

void c串列埠dlg::onbnclickedbuttonsend()

⑤清除資料按鈕

void c串列埠dlg::onbnclickedbuttonclean()

⑥ 關閉按鈕

void c串列埠dlg::onbnclickedbuttonclose()

void c串列埠dlg::oncommmscomm1()

; long len,k;

colesafearray fs;

int flag,i=0;

variant inputdata = m_mscom.get_input(); //讀緩衝區

fs = inputdata; //variant型別變數轉換成 colesafearray型變數

len = fs.getonedimsize(); //得到有效資料長度

for(k = 0;k < len;k++)

fs.getelement(&k,str+k); //轉換成byte型陣列

for(k = 0;k < len;k++) //將陣列轉換為cstring型變數

else if(strtemp == 'b')

else if(strtemp == 'c')

.....

//顯示資料寫入

switch(flag)

//寫入第2個文字 的資料

mfile.write(str2,str2.getlength());

getdlgitemtext(idc_combo1,str);

mfile.writestring(str+"\n");

mfile.write(str8,str8.getlength()); //寫列標題

//寫入接收框1的資料

mfile.write(str3,str3.getlength());

getdlgitemtext(idc_edit1_rev1,str); //寫入接收框資料

mfile.writestring(str);//指定乙個指向包含空終止文字字串的緩衝區的指標。

getdlgitemtext(idc_edit2_rev1,str);

mfile.writestring(",");

mfile.writestring(str);

getdlgitemtext(idc_edit3_rev1,str);

mfile.writestring(",");

mfile.writestring(str+"\n");

//寫入接收框2的資料

使用虛擬串列埠測試,可以實現 資料傳送、接收、儲存 。

VS2010編寫的MFC串列埠程式

剛剛學習mfc串列埠通訊,除錯了乙個串列埠通訊的程式,實現pc機與微控制器的串列埠通訊,能夠正常地收發資料。部分源 如下 開啟串列埠函式 void ccommtestdlg onbnclickedbuttonopen m mscomm.put commport 1 選擇com1 m mscomm.p...

C C static使用(基於VS2010)

一 在c語言中 靜態變數永遠只能初始化一次 執行時 但是可以多次賦值,靜態變數的記憶體位址在編譯後就確定了。1 區域性靜態變數,存在於全域性資料區 example1 include int function int main 輸出結果為11,12,13,14,15,16,17,18,19,20 紅色...

串列埠學習筆記原始碼 VS2010

serialdlg.cpp 實現檔案 include stdafx.h include serial.h include serialdlg.h include afxdialogex.h include io.h include windows.h ifdef debug define new d...