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()) //如果串口已经打开,则关闭。
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个数据位,1个停止位
m_ctrlComm.SetInputMode(1); //1:表示以二进制方式检取数据
m_ctrlComm.SetRThreshold(1);
//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
m_ctrlComm.SetInputLen(0); //设置当前接收区数据长度为0
m_ctrlComm.GetInput(); //先预读缓冲区以清除残留数据
/****************************************************************/
C#
if
(this.axMSComm1.PortOpen == true)
this.axMSComm1.PortOpen = false;
this.axMSComm1.CommPort = 1;//端口
this.axMSComm1.Settings =
"9600,n,8,1";//通信参数
this.axMSComm1.InputMode =
MSCommLib.InputModeConstants.comInputModeBinary;//接收数据的类型
this.axMSComm1.RThreshold = 1;
//接收缓冲区中接收到一个字符,就产生一次OnComm事件
//this.axMSComm1.OnComm += new
EventHandler(axMSComm1_OnComm); //注册一个OnComm事件
this.axMSComm1.SThreshold =
0;//当发送缓冲区中字符数小于该值时,MSComm控件设置Commevent属性为ComEvSend,并产生OnComm事件。若Sthreshold属性设置为0,则不产生OnComm事件
this.axMSComm1.RTSEnable = true;//启用请求发送
this.axMSComm1.DTREnable =
true;//接收就绪
this.axMSComm1.InputLen = 0;//一次从接收缓冲区中读取字节数,//
使用Input時為讀取全部資料
this.axMSComm1.NullDiscard =
false;
this.axMSComm1.PortOpen = true;
//打开端口