|
|
#1 |
|
Fecha de Ingreso: octubre-2006
Mensajes: 5
|
Interface en Visual Basic Para comunicacion PIC-PC
Saludos para todos
Me encuentro elavorando un proyecto sobre comunicacion entre un PIC y un PC por medio de el puerto serie RS232, y me funciona la parte de enviar los datos desde el PIC al PC. Hice una aplicacion en visual basic que recibe los datos... Pero no me ha quedado del todo bien la aplicacion, porque no he podido configurarle a la aplicacion el MSComm de forma que guarde los datos en un archivo en el instante en que lleguen, no he podido aprender a manejar el detector de deventos del MSComm, de modo que me toco abrir el puerto con la aplicacion y hacer la recepcion manual de los datos cuando este seguro que ya estan en el buffer del puertio... Mi intres es que sea automatica la aplicacion, que cuando lleguen los datos inmediatamente se guarden en el Archivo y que pueda seguir recibiendo datos el programa... a continuacion adjunto el codigo que he hecho en visual basic Código:
Dim dato As String Dim NumArchivo As Integer Private Sub Command1_Click() Text1.Text = "ESPERANDO DATOS" Text1.Text = MSComm1.Input dato = CStr(Text1.Text) Open "INVENTARIO.dat" For Append As #NumArchivo Print #NumArchivo, dato Close #NumArchivo Text1.Text = "Recepcion finalizada" MSComm1.PortOpen = False 'cerrar el puerto al salir del programa End Sub Private Sub Form_Load() MSComm1.Settings = "9600,n,8,1" 'velocidad, paridad MSComm1.CommPort = 1 'elegir el #del puerto MSComm1.PortOpen = True NumArchivo = FreeFile() ' numero que se le asigna al archivo al abrirlo End Sub Private Sub CERRAR_Click() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False 'cerrar el puerto al salir del programa End If End End Sub |
|
|
|
|
|
|
|
#2 |
|
Fecha de Ingreso: mayo-2007
Mensajes: 1
|
Estoy haciendo algo similar y creo qque lo que tienes que utilizar es el evento OnComm del MSComm, por lo menos asi lo estoy haciendo yo. Seria algo asi:
Private Sub MSComm1_OnComm() buffer = buffer & MSComm1.Input End Sub de esta manera cada vez que se produce el evento (cada vez que recibe un dato) lo añadira a "buffer" |
|
|
|
|
|
#3 |
|
Fecha de Ingreso: octubre-2006
Mensajes: 5
|
Gracias... pero ya lo resolví... utilicé el evento MSComm1.CommEvent = comEvReceive poniendo RThreshold como 2... luego activo un temporizador para que me garantice que todos los datos han llegado al buffer y los escribo en el archivo...
Lo del temporizador lo hice por que solo voy a utilizar las lineas de datos y la tierra del puerto... Gracias de todas formas por la ayuda |
|
|
|
|
|
#4 |
|
Fecha de Ingreso: septiembre-2009
Ubicación: Venezuela
Mensajes: 22
|
Respuesta: Interface en Visual Basic Para comunicacion PIC-PC
hola estoy haciendo un proyecto de comunicacion del pic a con la pc y no se como enviar desde el pic lo que tengo guardado en una variable y que lo reciba visual basic y que muestre un mensaje con el numero que tiene la variable, estare agradecido
|
|
|
|
|
|
#5 |
|
Fecha de Ingreso: enero-2008
Ubicación: 16F84A y 16F88
Mensajes: 2.215
|
Respuesta: Interface en Visual Basic Para comunicacion PIC-PC
Aquí creé hace tiempo un manual sobre el Visual Basic y PIC por puerto serie.
http://www.abcdatos.com/tutoriales/tutorial/v12.html Saludo. |
|
|
|
|
|
#6 | |
|
Fecha de Ingreso: abril-2008
Ubicación: Mexico D.F.
Mensajes: 18
|
Respuesta: Interface en Visual Basic Para comunicacion PIC-PC
estoy haciendo un proyecto similar con un PIC conectado al puerto serie de la PC, necesito leer en caracter que me envia el pic para hacer un conteo en Visual Basic por ejemplo si me llega "A" incremento un contador_A +1 y lo quiero plasmar en un label. pero solo me cuenta 1 y no incrementa mas auqnue los datos se reciben correctamente. el programa es el siguiente: Private Sub MSComm1_OnComm() Dim Com1 As Variant Dim Contador_A As Integer Dim Contador_B As Integer Contador_A = 0 Contador_B = 0 If MSComm1.CommEvent = comEvReceive Then Com1 = Com1 + MSComm1.Input Text1.Text = Com1 Select Case Com1 Case "A" Contador_A = Contador_A + 1 Label20.Caption = Contador_A Case "B" Contador_B = Contador_B + uno Label21.Caption = Time End Select End If End Sub En el case B puedo ver la hora cada vez que el pic envia un caracter B, si se actualiza, pero cuando recibe "A" no he conseguido incrementar mi contdor y verlo en en label20. Alguin puede apoyarme GRacias de antemano |
|
|
|
|