VC 的串列埠通訊(2)(

2021-05-22 00:34:50 字數 1911 閱讀 9492

1、選擇選單項project/add to project/components and controls……,將彈出乙個對話方塊以選擇系統中已有的元件(components)和控制項(controls)。選擇registered activex controls資料夾下的microsoft communications control項並按下insert按鈕,將mscomm控制項支援加入到本專案中。這時將生成乙個名為cmscomm的c++類,並且在對話方塊編輯器裡的工具欄將出現mscomm控制項圖示。cmscomm類是由mscomm控制項匯出的一系列介面函式構成的,利用它將可以訪問mscomm控制項的屬性(property)和方法(method)。

2、選取 controls 上 mscomm 控制項在對話方塊上畫出,雙擊mscomm控制項,系統會自動生成:

1>

dialog.h 檔案中生成

afx_msg void ononcommmscomm1();

declare_eventsink_map()

2>

dialog.cpp 檔案中生成

begin_eventsink_map(cmy1dlg, cdialog)

//}afx_eventsink_map

end_eventsink_map()

3>

dialog.cpp 檔案中生成

void cmy1dlg::ononcommmscomm1()

m_comm.setcommport(2);

m_comm. setinbuffersize(1024); //設定輸入緩衝區的大小,bytes

if (!m_comm.getportopen())

}*********************************另乙個例項****************************

dialog.cpp 檔案中,oninitdialog()函式內部:  

if(m_ctrlcomm.getportopen())

m_ctrlcomm.setportopen(false);

m_ctrlcomm.setcommport(3);   //選擇com1

if( !m_ctrlcomm.getportopen())

m_ctrlcomm.setportopen(true);//開啟串列埠

else

afxmessagebox("cannot open serial port");

m_ctrlcomm.setsettings("9600,n,8,1"); //波特率9600,無校驗,8個資料位,1個停止位

m_ctrlcomm.setrthreshold(1);

//引數1表示每當串列埠接收緩衝區中有多於或等於1個字元時將引發乙個接收資料的oncomm事件

m_ctrlcomm.setinputlen(0);  //設定當前接收區資料長度為0

m_ctrlcomm.getinput();//先預讀緩衝區以清除殘留資料

void cscommtestdlg::oncomm()

{variant m_input1;

colesafearray m_input2;

long length,i;

byte data[1024];

cstring str;

if(m_ctrlcomm.getcommevent()==2)//接收緩衝區內有字元

{m_input1=m_ctrlcomm.getinput();//讀取緩衝區內的資料

m_input2=m_input1;//將variant型變數轉換為colesafearray型變數

length=m_input2.getonedimsize();//確定資料長度

for(i=0;ifor(i=0;i//  m_ctrlcomm.setoutput(colevariant(hexdata)); //傳送十六進製制資料

VC 的串列埠通訊

vc 的串列埠通訊 vc 的串列埠通訊 代翔在vc 中有兩種方法可以進行串列埠通訊。一種是利用microsoft公司提供的activex 控制項 microsoft communications control。另一種是直接用vc 訪問串列埠。下面將簡述 這兩種方法。一 microsoft comm...

VC 的串列埠通訊

在vc 中有兩種方法可以進行串列埠通訊。一種是利用microsoft公司提供的activex控制項 microsoft communications control。另一種是直接用vc 訪問串列埠。下面將簡述這兩種方法。一 microsoft communications control micro...

VC 的串列埠通訊

在vc 中有兩種方法可以進行串列埠通訊。一種是利用microsoft公司提供的activex控制項 microsoft communications control。另一種是直接用vc 訪問串列埠。下面將簡述這兩種方法。一 microsoft communications control micro...