为什么VB 6代码不能打开串口?
问题描述:
Dim MSComm1 As MSComm
on error goto cant_open_com1
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.DTREnable = True
MSComm1.Handshaking = comRTS
MSComm1.InBufferSize = 12 + 1 ' +1 for the CR
MSComm1.RThreshold = MSComm1.InBufferSize
MSComm1.RTSEnable = True
MSComm1.InputLen = 0 ' read entire input buffer
MSComm1.InputMode = comInputModeText
MSComm1.NullDiscard = True
MSComm1.OutBufferSize = 0 ' not used, we don't write to the serial port
MSComm1.SThreshold = MSComm1.OutBufferSize
'MSComm1.ParityReplace = ?
MSComm1.PortOpen = True
控制传递到对错误处理程序为什么VB 6代码不能打开串口?
答
当你说“控制转到错误处理程序”,你忘了添加一个Exit Sub
?在你的评论中,你说你添加了新的声明,但是你仍然有问题?那么,我只是运行这个代码,并没有打开端口的麻烦。
Private Sub Form_Load()
Dim MSComm1 As New MSComm
On Error GoTo cant_open_com1
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.DTREnable = True
MSComm1.Handshaking = comRTS
MSComm1.InBufferSize = 12 + 1
MSComm1.RThreshold = MSComm1.InBufferSize
MSComm1.RTSEnable = True
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeText
MSComm1.NullDiscard = True
MSComm1.OutBufferSize = 0
MSComm1.SThreshold = MSComm1.OutBufferSize
MSComm1.PortOpen = True
Exit Sub
cant_open_com1:
Debug.Print Err.Description
End Sub
答
请勿在端口COM1上设置打印机。 COM1端口将由打印机在COM1端口占用。使用Visual Basic MSCOMM组件时,不需要任何打印机驱动程序。如果您在COM1端口中设置打印机。您可以使用下面的代码。此代码不会受到打印机设置的影响。
Visual Basic中:打开“COM1”输出#1
而且我们有猜测错误信息是什么? (?) – Marco 2010-09-02 14:02:13
@Marco给出发布的代码,它应该是'Object variable或With block variable not set',因为'MSComm1'是'Nothing'。 – GSerg 2010-09-02 14:05:03
我想这是因为你没有初始化MSComm1,尝试将它设置为新的msComm。 设置MSComm1 =新的MSComm(或类似的东西) 这是使用一个控件来做到这一点。 我从来没有使用COM端口..只有一次,但我用了一个很好的OCX:P http://www.thaiio.com/prog-cgi/0002_serial.htm – Marco 2010-09-02 14:17:10