dnf深渊与地下城难度:关于VB 中MSCOMM的小问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/27 06:20:19
在我的程序运行到以下代码的时候,他提示我"端口已打开"
With MSComm1
.PortOpen = True
.output = bysend
End With
但是我把".PortOpen = True"去掉以后他又说"只有当端口打开是,才有效"
这是为什么啊?求高手指教
补充:我这里的MSC的属性设置 是读的另一个窗体中的MSC的设置
With MSComm1
.CommPort = form2.MSComm1.CommPort
.Settings = form2.MSComm1.Settings

End With
这样应该可以把!

如果你的机器只有1个串口,那么在FORM2中打开了COMM1,除非该窗体UNLOAD,否则在FORM1中打开COMM1,系统必然报错.建议串口通信单独放一窗体,可通过全局变量或在通信窗体对其他窗体的控件(如TEXTBOX或LABEL)赋值来传递信息.
该通信窗体的接收信息可通过上下位机的通信格式约定来区别放置.

.CommPort = form2.MSComm1.CommPort 有问题!
一个MSCOMM对应着一个端口,既然FORM2有一个MSCOMM控件占用了COM1(或者是其他COM口),那么如果在FORM1的MSCOMM控件要打开同样的COM口,就会出现你所说的错误!
至于你去掉第一个.PortOpen = True,当你执行.output = bysend 时便因为FORM1的MSCOMM端口(注意,这个MSCOMM与FORM2的COM不同)没有打开而出现"只有当端口打开是,才有效" 错误