Почему этот код VB 6 не открывает последовательный порт? - PullRequest
3 голосов
/ 02 сентября 2010
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 ]

2 голосов
/ 02 сентября 2010

Когда вы говорите "управление переходит к обработчику ошибок", вы забыли добавить 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
0 голосов
/ 21 февраля 2013

Не устанавливайте принтер на порт COM1.Порт COM1 будет занят принтером в порту COM1.При использовании компонента Visual Basic MSCOMM вам не нужен драйвер принтера.Если вы установите принтер в порт COM1.Вы можете использовать следующий код.на этот код не влияют настройки принтера.

Visual Basic: откройте «COM1» для вывода AS # 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...