MSCOMM的问题

jonahclinton 2006-01-24 11:14:26
我现在需要使用COM1口进行通讯。现在电缆连接正确,使用XP自带的“超级终端”进行通讯时能正常收到文件或数据。但是用“超级终端”和MSCOMM连接的时候,就不好用了。不知道问题出在哪里,下面是我在VB中的代码。请大家帮我分析一下。 谢谢。

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Text1.Text = MSComm1.Input
MSComm1.InBufferCount = 0
End Select
End Sub
这样设置有什么问题吗?还是缺少什么属性的设置?请大家帮我看看。
...全文
135 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zou19820704 2006-01-24
  • 打赏
  • 举报
回复
属性设置的太少了,就是根本的事件驱动方式还是查寻方式都没有给支出来,
如果正常的话,我的影响默认是查询方式

Public Function OpenPort(PortNo As Integer, Optional InBufferSize As Integer = 1024, Optional OutBufferSize As Integer = 512) As Long
On Error GoTo ErrExit
MSComm1.CommPort = PortNo '采用COM端口
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.NullDiscard = False 'NULL字符从端口传送到接受缓冲区
MSComm1.DTREnable = False 'DTR线无效
MSComm1.EOFEnable = False '不寻找EOF符
MSComm1.RTSEnable = False 'RTS线无效
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.SThreshold = 1 '如果传输缓冲区完全空时产生MSComm事件
MSComm1.RThreshold = 0 '不产生MSComm事件
MSComm1.InBufferSize = InBufferSize '接收缓冲区 默认为1024个字节
MSComm1.OutBufferSize = OutBufferSize '发送缓冲区 默认为512个字节
MSComm1.PortOpen = True '打开端口
OpenPort = 0
Exit Function
ErrExit:
OpenPort = 1
End Function

这个你可以参考参考
MSComm1.RThreshold = 1事件驱动 ,每收到一个字节触发MSComm1_OnComm()

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧