VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.OutBufferCount = 0
C++
/****************************************************************/
//串行口初始化
if(m_ctrlComm.GetPortOpen()) //如果串口已經(jīng)打開,則關(guān)閉。
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //選擇com1
if( !m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE); //打開串口
else
AfxMessageBox("不能打開串行口!");
m_ctrlComm.SetSettings("9600,n,8,1"); //波特率9600,無校驗,8個數(shù)據(jù)位,1個停止位
m_ctrlComm.SetInputMode(1); //1:表示以二進(jìn)制方式檢取數(shù)據(jù)
m_ctrlComm.SetRThreshold(1); //參數(shù)1表示每當(dāng)串口接收緩沖區(qū)中有多于或等于1個字符時將引發(fā)一個接收數(shù)據(jù)的OnComm事件
m_ctrlComm.SetInputLen(0); //設(shè)置當(dāng)前接收區(qū)數(shù)據(jù)長度為0
m_ctrlComm.GetInput(); //先預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù)
/****************************************************************/
C#
if (this.axMSComm1.PortOpen == true)
this.axMSComm1.PortOpen = false;
this.axMSComm1.CommPort = 1;//端口
this.axMSComm1.Settings = "9600,n,8,1";//通信參數(shù)
this.axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeBinary;//接收數(shù)據(jù)的類型
this.axMSComm1.RThreshold = 1; //接收緩沖區(qū)中接收到一個字符,就產(chǎn)生一次OnComm事件
//this.axMSComm1.OnComm += new EventHandler(axMSComm1_OnComm); //注冊一個OnComm事件
this.axMSComm1.SThreshold = 0;//當(dāng)發(fā)送緩沖區(qū)中字符數(shù)小于該值時,MSComm控件設(shè)置Commevent屬性為ComEvSend,并產(chǎn)生OnComm事件。若Sthreshold屬性設(shè)置為0,則不產(chǎn)生OnComm事件
this.axMSComm1.RTSEnable = true;//啟用請求發(fā)送
this.axMSComm1.DTREnable = true;//接收就緒
this.axMSComm1.InputLen = 0;//一次從接收緩沖區(qū)中讀取字節(jié)數(shù),// 使用Input時為讀取全部資料
this.axMSComm1.NullDiscard = false;
this.axMSComm1.PortOpen = true; //打開端口
為了您的安全,請只打開來源可靠的網(wǎng)址
打開網(wǎng)站 取消來自:
http://hi.baidu.com/mrmobilerobot/blog/item/d8b3577ba6e21dff0bd18779.html