Autor Tema: Ayuda con RS232 en VB  (Leído 7320 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado wachapori65

  • PIC10
  • *
  • Mensajes: 31
Re: Ayuda con RS232 en VB
« Respuesta #15 en: 11 de Julio de 2007, 16:08:57 »
Hey hey hey! Hola a todos:

Una pregunta, o mejor dicho varias. Estoy haciendo un proyecto de activacion de un bus comun por medio del pic16f84, aplicacion pequeña, pero me lo encargaron que la interfase se controlara por windows, un programa de gestion, me recomendaron que usará el visual basic y tengo la version 6. El problema es que en mi vida lo he usado, pero como todo electronico, y mas en comunicaciones, hay una vez primera para todo y que bueno que me toco hacerlo, por que dentro de todo lo malo de no saber, aprendes de eso. En fin, el pic recibe una palabra de 8 bits, dependiendo que palabra sea es el pin que va activar a un latch y mantener ese pulso, eso ya esta controlado salvo unos detalles.

A lo que voy es que ya sé mas o menos se como se configura el com1, nada mas necesito mandar la palabra en rs 232 y estaba leyendo que no es posible mandar la constante binaria directamente, tengo que hacer una conversion a ascii y si es que debo hacer retardos para que el pic las detecte, por que lee las palabras en estado alto, 1/9600 Baudios = 104 µs.

El programa nada mas debe mandar la palabra en 1 byte y el pic se encarga de lo demas (a no ser que tenga problams en la recepcion, que es lo que quiero ver con el programa).
Si pueden ayudar a este parroquiano en la oscuridad.
Saludos desde Sonora, Mexico
Sale al rato Confused


Desconectado wachapori65

  • PIC10
  • *
  • Mensajes: 31
Re: Ayuda con RS232 en VB
« Respuesta #16 en: 11 de Julio de 2007, 17:24:19 »
Me marca que tengo que depurar en el If, no se que tenga el VB6 que esta aqui, pero asi mas o menos va el programita:

Private Sub Boton_Device1_Click(Index As Integer)
    If MSComm.PortOpen = False Then
        MSComm.PortOpen = True
    End If
MSComm1.PortOpen = True
MSComm1.OutPut = "A" & Chr(13)  'a lo que lei en le foro debe de ir Chr 13 y estoy pensando poner un retardo de 100ms pero primero lo primero


If MSComm1.CommEvent = comEvSend Then
    MsgBox "Enviando..."
Else
    On Error GoTo manejar_errores
End If


manejar_errores:
 MsgBox ("Error al intentar abrir COM" + Str$(nro_puerto))
 MsgBox ("Error detectado por Visual Basic: " + Err.Description)
 Resume Salir ' Resume me permite continuar con el programa.
Salir:

MSComm1.PortOpen = False

End Sub


Private Sub MSComm1_OnComm()
    MSComm1.CommPort = 1 'puerto com1
    MSComm1.Settings = "9600,N,8,1" 'configurando velocidad, sin paridad, 1 byte, 1 bit stop
    MSComm1.InputLen = 0 'sin recepcion de bits
    MSComm1.RThreshold = 1
    MSComm1.PortOpen = True
End


Nada mas es enviar el byte, esta bien asi? :?


 

anything