代码之家  ›  专栏  ›  技术社区  ›  Mawg says reinstate Monica

为什么这个vb6代码不能打开串口?

vb6
  •  3
  • Mawg says reinstate Monica  · 技术社区  · 14 年前
    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
    

    控制传递给错误处理程序

    2 回复  |  直到 14 年前
        1
  •  2
  •   raven    14 年前

    当您说“控制传递给错误处理程序”时,您是否忘记添加 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
    
        2
  •  -1
  •   chunhunghan    11 年前

    不要在端口COM1上设置打印机。COM1端口将由COM1端口中的打印机占用。使用Visual Basic MSCOMM组件时,不需要任何打印机驱动程序。如果您在COM1端口中设置打印机。您可以使用以下代码。此代码不会受打印机设置的影响。

    Visual Basic:打开“COM1”将输出为#1