Leer cadena hexadecimal

Saludos. Mi pregunta es ¿como extraer una parte especifica de una trama en hexadecimal que recibo por el puerto serie, estoy utilizando la función Mid, pero no me extrae el dato correcto. Te pongo el código de mi programa para ver si me puedes decir donde esta mi error.

Dim recibir() As Byte


Private Sub cmdAbrir_Click()
If comm1.PortOpen = True Then
comm1.PortOpen = False
cmdAbrir.Caption = "Abrir Puerto"
Exit Sub
Else
comm1.PortOpen = True
cmdAbrir.Caption = "Desconectar"
End If
End Sub

Private Sub cmdLimpiar_Click()
txtRepor.Text = ""
End Sub

Private Sub cmdSalir_Click()
End
End Sub

Private Sub comm1_OnComm()
Dim v As String
Dim p As String
recibir() = comm1.Input
p = Format(Hex(recibir(i)), "00") '& ","
txtRepor.Text = txtRepor.Text & p
v = Mid(p, 23, 4)
txt1 = v
End Sub

Private Sub Form_Load()
comm1.CommPort = 1
comm1.Settings = "9600,N,8,1"
comm1.InputLen = 1
comm1.RThreshold = 1
comm1.NullDiscard = False
End Sub

Private Sub txt1_Change()
End Sub

Private Sub txtRepor_Change()
End Sub

en el texto en negritas es donde leo la cadena hexadecimal, pero Mid no me extrae el dato correctamente

La trama exacta seria 7E 00 12 83 56 78 2E 00 05 04 00 02 FB 81, y lo que quiero extraer para convertirlo es el 02 FB exactamente, te agradezco tu ayuda

Añade tu respuesta

Haz clic para o