现在下面的这个程序是单字节发送,比如发送的是01他接收的就是01.现在我要求要多字节发送,比如发送的是010203对应的接收就是010203,这个程序怎么改都改不对,谢谢了。
Private Sub Form_Load()If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
Else
End IfCombo1.AddItem "COM1"
Combo1.AddItem "COM2"
Combo1.AddItem "COM3"
Combo1.ListIndex = 2Combo3.AddItem "4"
Combo3.AddItem "5"
Combo3.AddItem "6"
Combo3.AddItem "7"
Combo3.AddItem "8"
MSComm1.CommPort = Combo1.ListIndex + 1
MSComm1.Settings = "9600,n,8,1"
ComOpen.Caption = "´ò¿ª´®¿Ú"
Shape1.FillColor = &HFFFFC0End SubPrivate Sub ComOpen_Click()
On Error GoTo uerror
If ComOpen.Caption = "¹Ø±Õ´®¿Ú" Then
MSComm1.PortOpen = False
ComOpen.Caption = "´ò¿ª´®¿Ú"
Shape1.FillColor = &HFFFFC0
Else
MSComm1.PortOpen = True
ComOpen.Caption = "¹Ø±Õ´®¿Ú"
Shape1.FillColor = &HFF
End If
Exit Sub
uerror:
msg$ = "ÎÞЧ¶Ë¿ÚºÅ"
Title$ = "´®¿Úµ÷ÊÔÖúÊÖ"
X = MsgBox(msg$, 48, Title$)
End SubPrivate Sub MSComm1_OnComm()
Dim BytReceived() As Byte
Dim i As Integer
Dim strBuff As String
Select Case MSComm1.CommEvent
Case 2
Cls
MSComm1.InputLen = 0 '0±íʾ¶ÁÈ뻺³åÇøÈ«²¿ÄÚÈÝ
strBuff = MSComm1.Input '¶ÁÈëµ½»º³åÇø
BytReceived() = strBuff '¶þ½øÖƽÓÊÕģʽ
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & "0" & Hex(BytReceived(i)) & " " 'Èç¹ûÖ»ÓÐÒ»¸ö×Ö•û£¬ÔòÇ°²¹0£¬ÈçFÏÔʾ0F£¬×îºó²¹¿Õ¸ñ
Else '•½±ãÏÔʾ¹Û²ìÈ磺 00 0F FE
strData = strData & Hex(BytReceived(i)) & " "
End If
Next
TextReceive = TextReceive & strData
strData = ""
End Select
End SubPrivate Sub ComSend1_Click()
Dim Temp(0) As Byte
Dim strBuff As String
Temp(0) = "&H" & TextSend
MSComm1.Output = Temp
If MSComm1.PortOpen = False Then
MsgBox "Çë´ò¿ª´®¿Ú"
End IfOn Error GoTo uerror
MSComm1.Output = strBuffuerror:End Sub
Private Sub ComClean1_Click()TextSend.Text = ""End SubPrivate Sub Timer1_Timer()Call ComSend1_ClickEnd Sub
Private Sub Combo1_Click()If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
MSComm1.CommPort = Combo1.ListIndex + 1End SubPrivate Sub ComClean2_Click()TextReceive.Text = ""End Sub
Private Sub Form_Load()If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
Else
End IfCombo1.AddItem "COM1"
Combo1.AddItem "COM2"
Combo1.AddItem "COM3"
Combo1.ListIndex = 2Combo3.AddItem "4"
Combo3.AddItem "5"
Combo3.AddItem "6"
Combo3.AddItem "7"
Combo3.AddItem "8"
MSComm1.CommPort = Combo1.ListIndex + 1
MSComm1.Settings = "9600,n,8,1"
ComOpen.Caption = "´ò¿ª´®¿Ú"
Shape1.FillColor = &HFFFFC0End SubPrivate Sub ComOpen_Click()
On Error GoTo uerror
If ComOpen.Caption = "¹Ø±Õ´®¿Ú" Then
MSComm1.PortOpen = False
ComOpen.Caption = "´ò¿ª´®¿Ú"
Shape1.FillColor = &HFFFFC0
Else
MSComm1.PortOpen = True
ComOpen.Caption = "¹Ø±Õ´®¿Ú"
Shape1.FillColor = &HFF
End If
Exit Sub
uerror:
msg$ = "ÎÞЧ¶Ë¿ÚºÅ"
Title$ = "´®¿Úµ÷ÊÔÖúÊÖ"
X = MsgBox(msg$, 48, Title$)
End SubPrivate Sub MSComm1_OnComm()
Dim BytReceived() As Byte
Dim i As Integer
Dim strBuff As String
Select Case MSComm1.CommEvent
Case 2
Cls
MSComm1.InputLen = 0 '0±íʾ¶ÁÈ뻺³åÇøÈ«²¿ÄÚÈÝ
strBuff = MSComm1.Input '¶ÁÈëµ½»º³åÇø
BytReceived() = strBuff '¶þ½øÖƽÓÊÕģʽ
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & "0" & Hex(BytReceived(i)) & " " 'Èç¹ûÖ»ÓÐÒ»¸ö×Ö•û£¬ÔòÇ°²¹0£¬ÈçFÏÔʾ0F£¬×îºó²¹¿Õ¸ñ
Else '•½±ãÏÔʾ¹Û²ìÈ磺 00 0F FE
strData = strData & Hex(BytReceived(i)) & " "
End If
Next
TextReceive = TextReceive & strData
strData = ""
End Select
End SubPrivate Sub ComSend1_Click()
Dim Temp(0) As Byte
Dim strBuff As String
Temp(0) = "&H" & TextSend
MSComm1.Output = Temp
If MSComm1.PortOpen = False Then
MsgBox "Çë´ò¿ª´®¿Ú"
End IfOn Error GoTo uerror
MSComm1.Output = strBuffuerror:End Sub
Private Sub ComClean1_Click()TextSend.Text = ""End SubPrivate Sub Timer1_Timer()Call ComSend1_ClickEnd Sub
Private Sub Combo1_Click()If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
MSComm1.CommPort = Combo1.ListIndex + 1End SubPrivate Sub ComClean2_Click()TextReceive.Text = ""End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货