我用MScomm控件读取串口的数据,无法触发MSComm1_OnComm事件?

//无法触发事件
<SCRIPT LANGUAGE=javascript FOR=MSComm1 EVENT=OnComm >
MSComm1_OnComm();</SCRIPT>

<object classid="clsid:648A5600-2C6E-101B-82B6-000000000014" id="MSComm1" codebase="MSCOMM32.OCX" type="application/x-oleobject" style="left: 54px; top: 14px"> <param name="CommPort" value="3"><!--设置并返回通讯端口号。--> <PARAM NAME="Handshaking" VALUE="0"> <PARAM NAME="DTREnable" VALUE="1"> <PARAM NAME="InBufferSize" VALUE="1024"> <PARAM NAME="InputLen" VALUE="0"> <PARAM NAME="NullDiscard" VALUE="0"> <PARAM NAME="OutBufferSize" VALUE="512"> <PARAM NAME="ParityReplace" VALUE="?"> <PARAM NAME="RThreshold" VALUE="1"> <!--comm事件中的接收事件。默认为0。表示无论寄存器有多少字符均不会引发接收事件。--> <PARAM NAME="RTSEnable" VALUE="1"> <!--设置或返回接收事件的字符数。当接收寄存器达到所设置的字符数时,将会引发--> <PARAM NAME="SThreshold" VALUE="1"><!-- 若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。若设置 Sthreshold 属性为 1,当传输缓冲区完全空时,MSComm 控件产生OnComm事件。 --> <PARAM NAME="EOFEnable" VALUE="0"> <param name="InputMode" value="1"><!--comInputModeText 0 (缺省) 通过 Input 属性以文本方式取回数据。comInputModeBinary 1 通过 Input 属性以二进制方式检取回数据。--> <PARAM NAME="DataBits" VALUE="8"> <PARAM name="BaudRate" value="2400"> <PARAM NAME="StopBits" VALUE="1"> <PARAM name="Settings" value="2400,n,8,1"></object>

第1个回答  2013-07-29
昨天用vb作项目遇到同一问题,后来在发送过程尾部加 doevents 函数解决。oncomm事件在系统执行其他过程时虽然被触发,但代码不会运行,直到其他过程运行结束,所以其他过程发送查询指令后,应当马上挂起,将控制权交给系统,以使oncomm运行代码,否则其他过程结束,oncomm事件也结束了,不知道c有没有doevents,供参考。追问

你好,能不能将你的代码,发我一份。在页面上通过MSComm1获取到串口的数据的实例。腾讯:807975591

第2个回答  2013-07-26
<PARAM NAME="RThreshold" VALUE="1"> 具体多少中断这个管,设几接收几个字符就中断
相似回答