⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scmscomm.htm

📁 串口文件
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD><TITLE>首页-串口通讯-基本知识-RS422引脚说明</TITLE>
<META content="Microsoft FrontPage 4.0" name=GENERATOR>
<meta name="keywords" content="roaringwind,roaringwind.best.163.com,啸峰工作室,龚建伟,串口调试助手,VC/C编程,移动机器人,matlab仿真">
<meta name="DESCRIPTION" content="串口、端口、网络通信技术,VC、C编程技术,轮式移动机器人控制相关技术,Matlab仿真及数据处理">
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE type=text/css>A:link {
	COLOR: #006666; TEXT-DECORATION: none
}
A:visited {
	COLOR: #006666; TEXT-DECORATION: none
}
A:active {
	COLOR: #33cc00; TEXT-DECORATION: none
}
A:hover {
	COLOR: #33cc00; TEXT-DECORATION: underline
}
BODY {
	COLOR: #006666; FONT-FAMILY: 宋体; FONT-SIZE: 9pt
}
TABLE {
	FONT-FAMILY: 宋体; FONT-SIZE: 9pt
}
.H1 {
	FONT-SIZE: 9pt; LINE-HEIGHT: 9pt; align: center
}
TD {
	FONT-FAMILY: "宋体", "Arial", "Times New Roman"; FONT-SIZE: 9pt
}
P {
	FONT-FAMILY: "宋体", "Arial", "Times New Roman"; FONT-SIZE: 9pt
}
</STYLE>

<SCRIPT language=JavaScript>
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</SCRIPT>

<META content="Microsoft FrontPage 4.0" name=GENERATOR></HEAD>
<BODY leftMargin=0 
topMargin=6 marginheight="0" marginwidth="0">
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 height=70 width=758 bgcolor="#33CCFF">
  <TBODY>
  <TR bgColor=#99cccc vAlign=center>
    <TD align=middle height=60 width=151>
      <p align="center"><a href="../index.htm"><img border="0" src="../picindex/roaringlogo.jpg" width="120" height="60"></a></p>
    </TD>
    <TD bgColor=#00CCFF height=60 width=475>
      
    <p align="center"><img border="0" src="../picindex/coldfirexfs.gif" width="400" height="60">
      
    <TD align=middle bgColor=#cbe4e4 height=60 width=132>
      <DIV align=center>
      <TABLE border=1 
      cellPadding=2 cellSpacing=2 height=60 width=68>
        <TBODY>
        <TR bgColor=#dfeeee>
          <TD height=53 bgcolor="#33CCFF">
            <DIV align=center>
            <SCRIPT language=javascript>                 
<!---                 
    today = new Date();                 
    var hours = today.getHours();                 
    var minutes = today.getMinutes();                 
    var seconds = today.getSeconds();                 
    function initArray(){                 
    this.length=initArray.arguments.length                 
    for(var i=0;i<this.length;i++)                 
    this[i+1]=initArray.arguments[i] }                 
    var d=new initArray("<font color=red>星期天","星期一","星期二","星期三","星期四","星期五","<font color=GREEN>星期六");                  
    document.write(today.getYear(),"年","<br>",today.getMonth()+1,"月",today.getDate(),"日</FONT>","<br>",d[today.getDay()+1]," "); //-->                 
</SCRIPT>
            </DIV></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE>
<TABLE align=center background=../picindex/top.gif bgColor=#99cccc border=0 
cellPadding=0 cellSpacing=0 height=22 width=758>
  <TBODY>
  <TR>
    <TD height=23 width=25>
      <DIV align=center></DIV></TD>
    <TD height=23 width=74>
      <DIV align=center>
        <p align="center"><a href="../index.htm">首页</a></DIV></TD>
    <TD height=23 width=18>&nbsp;</TD>
    <TD height=23 width=73>
      <p align="center"><a href="../article.htm" target="_blank">发表论文</a></TD>
    <TD height=23 width=17>&nbsp;</TD>
    <TD height=23 width=73>
      <DIV align=center><a href="../myprogram.htm" target="_blank">自制软件</a></DIV></TD>
    <TD height=23 width=17>&nbsp;</TD>
    <TD height=23 width=74>
      <DIV align=center><a href="../serialcomm.htm" target="_blank">串口通讯</a></DIV></TD>
    <TD height=23 width=17>&nbsp;</TD>
    <TD height=23 width=72>
      <DIV align=center><a href="../vcandindex.htm" target="_blank">VC/C编程</a></DIV></TD>
    <TD height=23 width=17>&nbsp;</TD>
    <TD height=23 width=72>
      <DIV align=center>网络通讯</DIV></TD>
    <TD height=23 width=18>&nbsp;</TD>
    <TD height=23 width=74>
      <DIV align=center>机器人控制</DIV></TD>
    <TD height=23 width=18>&nbsp;</TD>
    <TD colSpan=2 height=23>
      <DIV align=center><a href="../matlabindex.htm" target="_blank">MATLAB</a></DIV></TD>
    <TD height=23 width=29>&nbsp;</TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0 
width=758 height="443">
  <TBODY>
  <TR>
    <TD align=middle bgColor=#cbe4e4 vAlign=top width=30 background="../picindex/bck_broad.gif" rowspan="2">
       </TD>
    <TD align=left vAlign=top 
    width=4 height="443" rowspan="2">&nbsp;</TD>
    <TD align=middle vAlign=top width=450 rowspan="2">
      <TABLE border=0 cellPadding=1 cellSpacing=1 height=220 width=550>
        <TBODY>
        <tr>
          <TD width=543>
            <p align="center"><img border="0" src="../picindex/headline1.gif" width="480" height="3">
          </TD>          
        </tr>
        <tr>
          <TD width=543>
<p align="center"><font size="4" color="#000000"> <b>MSComm控件使用详解</b></font></p>        
<p align="left" style="margin-left: 0; margin-top: 8; margin-bottom: 8"><font color="#000000"><br>
龚建伟:这篇东西来不及好好整理,因有朋友经常提及,先放在这里,如果有必要,再详细理顺一下,更为详细的信息请去看MSDN。</font>
</p>        
          </TD>                 
        </tr>       
        <tr>       
          <TD width="543">                     
            <p align="center"><font color="#000000"><img border="0" src="../picindex/headline1.gif" width="480" height="3"></font></TD>       
        </tr>       
        <tr>       
          <TD width=100% valign="top" align="center">
<p align="left" style="margin-left: 0; margin-top: 8; margin-bottom: 8">
<font color="#000000">
<br>
摘要:本文详细介绍了MSComm控件在串口编程中使用。<br>
</font>
</p>        
<p align="left" style="margin-left: 0; margin-top: 8; margin-bottom: 8"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   
<b><a name="目  次">目&nbsp; 次</a></b><br> 
<a href="#1.MSComm控件两种处理通讯的方式">MSComm控件两种处理通讯的方式<br> 
</a><a href="#CommPort属性">CommPort属性<br> 
</a><a href="#RThreshold 属性">RThreshold 属性<br>  
</a><a href="#CTSHolding 属性">CTSHolding 属性<br>  
</a><a href="#SThreshold 属性">SThreshold 属性<br>  
</a><a href="#CDHolding 属性">CDHolding  属性<br>  
</a><a href="#DSRHolding 属性">DSRHolding 属性<br>  
</a><a href="#Settings 属性">Settings   属性<br>  
</a><a href="#InputLen 属性">InputLen   属性</a><br>  
<a href="#EOFEnable 属性">EOFEnable  属性<br>  
</a><br>  
<a href="#Handshake 常数">Handshake 常数<br>  
</a><a href="#OnComm 常数">OnComm 常数<br>  
</a><a href="#错误消息">InputMode 常数<br>  
错误消息<br>  
</a><br>  
<br>  
&nbsp;&nbsp;&nbsp;&nbsp; MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。<font color="#040484" size="-1">&nbsp;</font>Microsoft      
        Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。</font></p>           
<p align="left" style="margin-left: 0; margin-top: 8; margin-bottom: 8"><a name="1.MSComm控件两种处理通讯的方式"><font color="#000000">1.MSComm控件两种处理通讯的方式</font></a></p>         
<p align="left" style="margin-left: 0; margin-top: 8; margin-bottom: 8"><font color="#000000">MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。&nbsp;<br> 
1.1 事件驱动方式</font></p>  
<p align="left" style="margin-left: 0; margin-top: 8; margin-bottom: 8"><font color="#000000">事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。</font></p>   
<p align="left" style="margin-left: 0; margin-top: 8; margin-bottom: 8"><font color="#000000">1.2   
查询方式&nbsp;</font></p>          
<p align="left" style="margin-left: 0; margin-top: 8; margin-bottom: 8"><font color="#000000">查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。&nbsp;</font></p>  
<p align="left" style="margin-left: 0; margin-top: 8; margin-bottom: 8"><font color="#000000">2.MSComm 控件的常用属性<br>   
MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。<br>   
CommPort 设置并返回通讯端口号。&nbsp;<br>  
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。&nbsp;<br>  
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。&nbsp;<br>  
Input    从接收缓冲区返回和删除字符。&nbsp;<br>  
Output   向传输缓冲区写一个字符串。<br>   
<br>   
下面分别描述:&nbsp;<br>  
<br>  
<a name="CommPort属性"><b>CommPort属性</b></a>    设置并返回通讯端口号。<br>   
语法  object.CommPort[value ] (value  一整型值,说明端口号。)&nbsp;<br>  
说明  在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1)。但是如果用 PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68(设备无效)。<br>   
注意:必须在打开端口之前设置 CommPort 属性。<br>   
<br>   
<a name="RThreshold 属性"><b>RThreshold 属性</b></a>:在 MSComm 控件设置 CommEvent 属性为 comEvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。<br>   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -