Red de conocimiento informático - Problemas con los teléfonos móviles - vb tiene un error al leer los datos del microcontrolador a través del puerto serie, urgente!!!!!1

vb tiene un error al leer los datos del microcontrolador a través del puerto serie, urgente!!!!!1

Al activar la comunicación, se debe agregar la siguiente declaración para evitar que se active nuevamente en la misma secuencia de tiempo:

MSComm1.RTreshold = 0 'Desactivar la recepción de eventos OnComm

Pruébalo y estudiar si hay algún problema. Es incorrecto cambiar el umbral a 28.

Permítame darle una referencia al programa que escribí hace algún tiempo. Los requisitos específicos están en él. No puedo seguirlo ahora.

Dim. av como variante

Dim datacount As Long

Private Sub cmdClear_Click()

grdData.PortOpen = False

Finalizar si

cmdReceive.Enabled = True

lblStatus.Caption = "Dejar de recibir, inactivo"

Fin Sub

Sub privado cmdReceive_Click()

'Configuración del puerto serie

Usar MSComm

.CommPort = 1

.Settings = "19200,N,8,1" '***** 9600 - 19200

.RTreshold = 1 'Recibir 1 byte para activar el evento oncomm

.InputMode = comInputModeBinary

.InputLen = 1 'La longitud de entrada es 1

.InBufferCount = 0 'Borrar el buffer de recepción

Terminar con

'Abrir el puerto

Si MSComm.PortOpen = False Entonces

MSComm.PortOpen = True

Si Err Entonces

MsgBox (Err.

Salir Sub

Finalizar si

End If

lblStatus.Caption = "Puerto abierto, esperando recibir"

datacount = 0

cmdReceive.Enabled = False

av = MSComm .Input '*****

marco de datos(5) = av(0) '*****

T1 = marco de datos (2) + CLng(dataframe(3) )* 256 + CLng(dataframe(4))* 65536 + CLng(dataframe(5))* 16777216 'Calcular T1 '*****

Fin If

Do

DoEvents

Bucle hasta MSComm.InBufferCount >= 1 'Bucle y espere a RecibirBuffer> = 1 byte

av. = MSComm.Input 'Leer una palabra recibida Festival.

Entrada 'Leer un byte recibido

dataframe(6) = av(0) 'Convertir a bytes'***** 4 - 6

'Recibir T2

Si dataframe(6) = &HA0 Entonces

'MSComm.RTreshold = 0 'Desactivar la recepción de eventos OnComm

'Bucle hasta el búfer de recepción >= 2 bytes

Do

DoEvents

Bucle hasta MSComm.InBufferCount >= 4 '**** * 2 - 4

av = MSComm.Input

marco de datos(7) = av(0)

av = MSComm.InBufferCount >= 4 '**** * 2 - 4