串口通信上位机软件问题--vb编写

[复制链接]
3300|2
 楼主| zjh006 发表于 2007-8-31 15:04 | 显示全部楼层 |阅读模式
<br />我用vb中&nbsp;MSCOMM控件进行串口通讯,但是程序不产生oncomm事件,可能会是什么原因?谢谢!<br /><br />下面是串口初始化:<br />&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;MSComm1.PortOpen&nbsp;=&nbsp;False&nbsp;Then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.CommPort&nbsp;=&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'设定Com1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.Settings&nbsp;=&nbsp;&quot;19200,n,8,1&quot;&nbsp;&nbsp;&nbsp;&nbsp;'19200波特率,无校验,8位数据位,1位停止位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.InBufferSize&nbsp;=&nbsp;1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'设置接收缓冲区的字节长度<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.PortOpen&nbsp;=&nbsp;True&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'打开串口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Timer1.Enabled&nbsp;=&nbsp;True<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command4.Caption&nbsp;=&nbsp;&quot;关闭串口&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.PortOpen&nbsp;=&nbsp;False&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'关闭串口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Timer1.Enabled&nbsp;=&nbsp;False<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command4.Caption&nbsp;=&nbsp;&quot;打开串口&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.OutBufferCount&nbsp;=&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'清空发送缓冲区<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.InBufferCount&nbsp;=&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'滑空接收缓冲区<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.InputLen&nbsp;=&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.InputMode&nbsp;=&nbsp;comInputModeBinary&nbsp;&nbsp;'接收二进制数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.RThreshold&nbsp;=&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSComm1.SThreshold&nbsp;=&nbsp;1&nbsp;<br />&nbsp;<br />
kingkits 发表于 2007-9-7 13:14 | 显示全部楼层

把mscomm1.portopen=true放在最后

在你设置mscomm1.portopen=true之前,所有串口的参数都应该设置好。一旦设置mscomm1.portopen=true,该串口就不能接受参数设置了&nbsp;。只能先关闭后在设置
shaotli 发表于 2007-10-26 13:04 | 显示全部楼层

删除三行

删除三行:<br />MSComm1.OutBufferCount&nbsp;=&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'清空发送缓冲区<br />MSComm1.InBufferCount&nbsp;=&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'滑空接收缓冲区<br />MSComm1.InputLen&nbsp;=&nbsp;1<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

610

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部