求助 那为高手看一下 我的程序指点一下 关于MSCOMM控件与单片机通信的问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 12:17:19
Private Sub op_Click()
right = 1

'**********
'串口设置

MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1" ''''''''''''''
MSComm1.InputMode = comInputModeBinary
MSComm1.InputLen = 1
MSComm1.Handshaking = comNone
MSComm1.RThreshold = 1
MSComm1.InBufferSize = 19
If MSComm1.PortOpen = True Then
MsgBox "串口1被占用!!!"
End If

If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
MsgBox "串口1打开成功"
End If

If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
Dim i As Integer
Dim sent(1)

sent(0) = Chr(10)
sent(1) = Chr(10)

For i = 0 To 1
MSComm1.Output = sent(i)
Next i
Exit Sub
End Sub
Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent
Case comEvReceive
Dim buff As Variant
Dim

代码作了修改,串口通信尽量不用MsgBox,会引起程序中断,供参考:
Option Explicit
Dim Right
Dim CardtypeID
Private Sub Form_Load()
'**********
'串口设置
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1" ''''''''''''''
MSComm1.InputMode = comInputModeBinary
MSComm1.InputLen = 1
MSComm1.Handshaking = comNone
MSComm1.RThreshold = 19 '如果接收字节总长为19字节
'MSComm1.InBufferSize = 19'本句可能是引起报错的原因
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
Label1 = "串口1打开成功"
End If
End Sub

Private Sub op_Click()
Right = 1
Dim i As Integer
Dim sent(1) As Byte
sent(0) = &HA
sent(1) = &HA
'For i = 0 To 1
MSComm1.Output = sent()
'Next i
End Sub
Private Sub MSComm1_OnComm()