Saludos a todos:
Disculpen que no haya podido contestar estos dias, tuve que ausentarme pero ya regresé. Gracias
por contestar, pero retomando el tema encontré un problema grave ... mi pic envia a la PC lo siguiente:
1PIC, H'0D', (2seg), 2RS232, H'0D', (2seg), 301/02/03, H'0D', (2seg), 4TodoPic, H'0D', (4seg) y todo esto en bucle infinito.
Envio H'0D' para indicar que finalizó una cadena.
En el Visual Basic 6 tengo lo siguiente:
Private Sub Form_Activate()
With MSComm1
.CommPort = 1 'Com1
.Settings = "9600,N,8,1" '9600bps, sin paridad, 8 bits de datos, 1 bit de stop
.Handshaking = comNone 'Sin Control de flujo
.InputLen = 0 'Cuando se use Input leerá el buffer RX completo
.RThreshold = 1 'Cuando recibe 1byte se produce el evento OnComm
.EOFEnable = False 'No espero disparar el OnComm al recibir d'26'
End With
End Sub
Private Sub MSComm1_OnComm()
Dim a1 As String
Static i As Integer
i = i + 1
Label1.Caption = i 'Incrementar por cada byte que llega al puerto
Select Case MSComm1.CommEvent
Case comEvReceive
a1 = MSComm1.Input
Text1.Text = a1 'Lo que llega lo muestro en la caja de texto
End Select
End Sub
Cuando corro el programa veo que el Label se incrementa de 1 en 1 pero el Text1 aparece toda la cadena, es como si hubiese configurado al programa para que se muestre el resultado solo cuando llegue una determinada cantidad de caracteres y no es asi, yo tengo configurado el puerto para que se dispare cuando llega 1 byte. Pero este problema se soluciona si agrego un delay de 1seg entre cada caracter enviado, es decir:
1, (1seg), P, (1seg), I, (1seg), C, (1seg), H'0D', (1seg), 2, (1seg), R, (1seg), etc
Y en este caso recien aparece lo que deberia aparecer es decir en el Text se ve un caracter y a la vez el label incrementa en 1, luego aparece el siguiente caracter y el label vuelve a incrementar en 1.
Que es lo que estoy haciendo mal? espero me puedan aconsejar. Gracias
Javicho.