comunicación serie vb
Mi comprensión se puede simplificar al comprender los números hexadecimales:
Cada 2 códigos BCD constituyen un byte, y cada byte de datos binarios recibidos debe procesarse en caracteres hexadecimales. Solo puede estar en el rango 00-99, no en el rango 00-FF. Salida = sendsj
End Sub
Sub privado Form_Load()
MSComm1.Settings = "9600, N, 8.1"
MSComm1 .CommPort = 1
MSComm1.PortOpen = Verdadero
MSComm1.PortOpen = Verdadero
MSComm1.PortOpen = Verdadero
MSComm1.PortOpen = TrueRTreshold = 17
txtSend = "R"
txtReceive = ""
Sub final
Sub privado MSComm1_OnComm() p>
Dim BytesReceived() como byte
Dim buffer como cadena
Dim HData como cadena
Dim i como entero
Seleccione Caso MSComm1.CommEvent
Caso comEvReceive 'Recibir datos hexadecimales. Mostrar en hexadecimal
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary 'Configurado para recibir los datos actuales en binario
buffer = MSComm1.InputLen = 0
BytesReceived() = buffer 'Transmitir datos a BYTE
For i = 0 To UBound(BytesReceived) 'Mostrar el resultado en hexadecimal
If Len(Hex (BytesReceived(i))) = 1 Entonces
HData = HData amp; "0" amp; Hex(BytesReceived(i))
Else
HData = HData & Hex(BytesReceived(i))
End If
txtReceive.Text = HData 'Finalmente envía el resultado a txtreceive
'Realizar procesamiento de datos
MSComm1.OutBufferCount = 0 'Borrar el búfer de envío
MSComm1.InBufferCount = 0 'Borrar el búfer de recepción
Siguiente
Finalizar selección
Fin del subtítulo