About Serial Port - lập trình giao tiếp nối tiếp
Chào bạn.
Mình gặp vấn đề về kết nối thiết bị ngoại vi qua công COM
Mình có 1 chương trình kết điều khiển băng chuyền và đầu khắc lazel.
Chương trình của mình trên win7 chạy rất ok không bị gì.
Nhưng khi mình up lên win 10 thì chương trình bị lỗi không kết nối được với cổng COM nữa.
Bạn có thể giúp mình được không?
Xin cám ơn.
Gửi bạn 1 số code của mình.

Private Sub Form_Load()
'Dim ret As Integer
lb2.Caption = "VTXXXXXXXXXXXXXX01" & Chr(13) & "VTXXXXXXXXXXXXXX02" & Chr(13) & "VTXXXXXXXXXXXXXX03" & Chr(13) & "VTXXXXXXXXXXXXXX04"
PWB_LOTNO = ""
'========================Khoi tao Port cho Laser controller======================================
gstrPort = "1"
gstrBaudrate = "38400"
gstrParity = "N"
gstrStopbit = "1"
gstrDelimiter = "13"
gstrHeader = "1"
gstrCheckSumOnOff = "1"
With LaserController
.CommPort = gstrPort
.Settings = gstrBaudrate & "," & gstrParity & "," & "8" & "," & gstrStopbit
.InputLen = 0
.OutBufferSize = 4096
.InBufferSize = 4096
End With
'========================Khoi tao Port cho Motor controller======================================
With MotorController
.CommPort = "2"
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,n,8,1"
.SThreshold = 0
.PortOpen = True
End With

'================================================= ===============================================
Call GetModel
lbProduct(0).Caption = LTrim$(RTrim$(model))
Call GetPCBANo
lbProduct(1).Caption = LTrim$(RTrim$(PCBANo))
Call GetRevision
lbProduct(2).Caption = LTrim$(RTrim$(Revision))
Call GetSMTLine
lbProduct(3).Caption = LTrim$(RTrim$(SMTLine))
Call GetControl_key
lbProduct(4).Caption = Control_key
Call GetProductID
lbProduct(5).Caption = PCBAID
Call GetPCBA
lbProduct(6).Caption = PCBA
If Opt(0).Value = True Then
Me.Caption = "Test Mode"
Else
Me.Caption = "Mass Production Mode"
End If

lbResult.Caption = ""
lbStop.Caption = ""
lb2.Caption = ""
Call GreenLight_On
'kiem tra du lieu khac co phai trantron hay khong
'Phan lay tu master SIMICLOT trong bang Product cac san pham co ten la TRANSTRON hay TSTRON
TSTRON = PCBA_TSTRON(lbProduct(1).Caption)
If TSTRON = True Then
Command1.Visible = True
Else
Command1.Visible = False
End If
' end check
End Sub

Private Sub Form_Unload(Cancel As Integer)
If LaserController.PortOpen = True Then
LaserController.PortOpen = False
End If
If MotorController.PortOpen = True Then
MotorController.PortOpen = False
End If
End Sub

Private Sub MotorController_OnComm()
Dim Inbuff As String
If MotorController.CommEvent = comEvReceive Then
Inbuff = MotorController.Input
Call HandleInput(Inbuff)
End If
End Sub

Sub HandleInput(Inbuff As String)
Select Case Inbuff
Case "R" 'Ready : VDK bao san sang
ReadySensor = True
Case "E" 'VDK bao da co board tren ban XY
PCBSensor = True
Case "L"
LoaderSensor = True
Case "X"
DataError = True
Case Else 'VDK tra ve gia tri ma PC truyen qua.
ReadySensor = False
EOS = True
End Select
End Sub

Sub Command2Control(ByVal Command As String) ' Command = "S"
ReadySensor = False
EOS = False
MotorController.Output = Command
Call Sleep(50)
End Sub