📄 mscomm控件使用详解-.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0056)http://www.51kaifa.com/zxyd/read_z.php?ID=951&BigClass=6 -->
<HTML><HEAD><TITLE>MSComm控件使用详解- 无忧电子开发网-在线阅读</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="" name=Keywords><LINK href="MSComm控件使用详解-_files/css.css"
type=text/css rel=stylesheet>
<SCRIPT language=JavaScript>function fontzoom(size){ document.getElementById('fontzoom').style.fontSize=size+'px'}</SCRIPT>
<SCRIPT language=Javascript>document.oncontextmenu=new Function("event.returnValue=false");document.onselectstart=new Function("event.returnValue=false");</SCRIPT>
<!-- 限制右键复制 -->
<META content="MSHTML 6.00.3790.1830" name=GENERATOR></HEAD>
<BODY topMargin=10 marginheight="10" marginwidth="10">
<TABLE cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD width="100%">
<TABLE height=2 cellSpacing=0 cellPadding=0 width="100%" bgColor=#808080
border=0>
<TBODY>
<TR>
<TD width="100%"></TD></TR></TBODY></TABLE>
<TABLE height=80 cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=middle width=186><A href="http://www.51kaifa.com/"><IMG
height=65 src="MSComm控件使用详解-_files/logo.jpg" width=186
border=0></A></TD>
<TD align=middle width=574>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=bottom width=120><A
href="http://www.51kaifa.com/zxyd/"><IMG height=67
src="MSComm控件使用详解-_files/logo_zxyd.gif" width=120
border=0></A></TD>
<TD width=454>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=middle width="100%" colSpan=3 height=19>
<TABLE cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD class=xyzx_top align=middle width="100%"
height=19><A
href="http://www.51kaifa.com/hyxw">综合资讯</A> <A
href="http://www.51kaifa.com/jswz">技术文章</A> <A
href="http://www.51kaifa.com/yyfa">原文阅读</A> <A
href="http://www.51kaifa.com/shop">在线商城</A> <A
href="http://www.51kaifa.com/zxxz">下载专区</A> <A
href="http://www.51kaifa.com/datasheet">DATASHEET</A>
<A href="http://www.51kaifa.com/bbs">技术论坛</A> <A
href="http://www.51kaifa.com/MenberInfo">商务频道</A>
</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width=47
background=MSComm控件使用详解-_files/R_list_3.gif><IMG
height=54 src="MSComm控件使用详解-_files/R_list_2.gif"
width=48 border=0></TD>
<TD class=xyzx_top_shadow width=402
background=MSComm控件使用详解-_files/R_list_3.gif>
<P style="LINE-HEIGHT: 150%"><A class=xyzx_top2
href="http://www.51kaifa.com/zxyd/list.php?BigClass=2">电子书籍</A><FONT
color=#ffffff> | </FONT><A class=xyzx_top2
href="http://www.51kaifa.com/zxyd/list.php?BigClass=4">网络文库</A><FONT
color=#ffffff> | </FONT><A class=xyzx_top2
href="http://www.51kaifa.com/zxyd/list.php?BigClass=3">技术资料</A><FONT
color=#ffffff> | </FONT><A class=xyzx_top2
href="http://www.51kaifa.com/zxyd/list.php?BigClass=11">嵌入式系统</A><FONT
color=#ffffff> | </FONT><A class=xyzx_top2
href="http://www.51kaifa.com/zxyd/list.php?BigClass=6">单片机专题</A><BR><A
class=xyzx_top2
href="http://www.51kaifa.com/zxyd/list.php?BigClass=10">DSP专题</A><FONT
color=#ffffff> | </FONT><A class=xyzx_top2
href="http://www.51kaifa.com/zxyd/list.php?BigClass=8">EDA/PLD专题</A><FONT
color=#ffffff> | </FONT><A class=xyzx_top2
href="http://www.51kaifa.com/zxyd/list.php?BigClass=7">电子制作专题</A><FONT
color=#ffffff> | </FONT><A class=xyzx_top2
href="http://www.51kaifa.com/zxyd/list.php?BigClass=12">电源技术专题</A><FONT
color=#ffffff> | </FONT></P></TD>
<TD width=5><IMG height=54 src="" width=5
border=0></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE height=4 cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="100%"></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="98%" align=center border=0>
<TBODY>
<TR>
<TD align=middle width="5%" height=25><IMG
src="MSComm控件使用详解-_files/R_url.jpg"></TD>
<TD width="95%">所在的位置:<A href="http://www.51kaifa.com/">首页</A></A> →
<A href="http://www.51kaifa.com/zxyd/">在线阅读</A></A> → <A
href="http://www.51kaifa.com/zxyd/list.php?BigClass=6">单片机专题</A> →
<A href="http://www.51kaifa.com/zxyd/read.php?ID=166">串口通信专辑</A> →
<FONT color=#ff9900>正文</FONT> </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD width="100%" bgColor=#808080 colSpan=3 height=1></TD></TR>
<TR>
<TD vAlign=top width=590>
<TABLE cellSpacing=0 cellPadding=0 width="94%" align=center
border=0>
<TBODY>
<TR>
<TD align=middle width="100%"><FONT
color=#05006c><B>MSComm控件使用详解</B></FONT></TD></TR>
<TR>
<TD width="100%" height=6></TD></TR>
<TR>
<TD align=middle width="100%" height=18>
<TABLE style="BORDER-TOP: #666666 1px solid" height=2
cellSpacing=1 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=middle width="100%"
bgColor=#dce9fc></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=6></TD></TR>
<TR>
<TD class=p16 id=fontzoom style="LINE-HEIGHT: 1.5" vAlign=top
width="100%" height=300><BR><!--画中画广告开始-->
<TABLE cellSpacing=0 cellPadding=0 align=left border=0>
<TBODY>
<TR>
<TD><!-- 广告位 -->
<TABLE cellSpacing=0 cellPadding=0 width="99%"
align=center background="" border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle><A
href="http://www.51kaifa.com/upload/do_page/1119369847.html"
target=_blank><IMG height=50
src="MSComm控件使用详解-_files/1119368683.gif" width=100
border=0></A></TD></TD></TR></TBODY></TABLE><!-- $sign哪个页面$digit位置$way等h不循环TR;X循环TR;$num显示个数 --></TD></TR></TBODY></TABLE><!--画中画广告结束-->MSComm
控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。
Microsoft Communications
Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。
<P class=style27 align=left><A>1.MSComm控件两种处理通讯的方式 </A></P>
<P class=style27
align=left> MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。<BR><BR> 1.1
事件驱动方式 </P>
<P class=style27
align=left> 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者
Carrier Detect (CD) 或 Request To Send (RTS)
线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm
事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅
CommEvent
属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm
控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。 </P>
<P class=style27 align=left>1.2 查询方式 </P>
<P class=style27
align=left> 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查
CommEvent
属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
</P>
<P class=style27 align=left>2.MSComm 控件的常用属性 <BR><BR>MSComm
控件有很多重要的属性,但首先必须熟悉几个属性。 <BR><BR>CommPort 设置并返回通讯端口号。
<BR><BR>Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -