• Viernes 29 de Marzo de 2024, 02:37

Autor Tema:  Errores con el uso del puerto serie, envio y recepcion  (Leído 1326 veces)

Kain589

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Errores con el uso del puerto serie, envio y recepcion
« en: Viernes 20 de Febrero de 2009, 00:40 »
0
Saludos! Pues queria compartir con vosotros una duda, estoy desarrollando un sistema con un microcontrolador y necesito en mi diseño realizar la comunicacion serie del ordenador con el microcontrolador.

La aplicacion de VB almacena en un array 4 valores, y cuando estan todos los manda por el puerto serie. El microcontrolador recibe los 4 bytes, y responde con el de mayor valor. El programa del microcontrolador lo he comprobado usando el hyperterminal y funciona bien, sin hacer nada extraño.

El problema es que por mas que he buscado, no encuentro un codigo para trabajar en Visual Basic Express con datos tipo byte a traves del puerto serie. A partir de algunas rutinas que trabajan con cadenas de caracteres, escribi el siguiente codigo :

Código: Visual Basic
  1. 'Se declara 1 delegado_Tendra como dato de referencia una variable data del tipo Byte
  2.          Delegate Sub delegado(ByVal data As Byte
  3.               ...........
  4.         Private Sub sp_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles sp.DataReceived
  5.         Dim recepcion As Byte
  6.         recepcion = sp.ReadByte
  7.         Dim escribeport As New delegado(AddressOf Me.mostrar)
  8.         Me.Invoke(escribeport, recepcion)
  9.     End Sub
  10.  
  11.     Sub mostrar(ByVal b As Byte)
  12.         Consola.AppendText("El Puerto Recibe : " & b)
  13.     End Sub
  14.  
  15.  

Para enviar datos a traves del puerto serie utilizo la instruccion:

sp.WriteLine(dato(i))

Y esta instruccion no me manda tampoco datos tipo bytes, supongo que mandara en formato cadena de caracteres, o no se.

Para comprobar la correcta programacion del microcontrolador uso el hyperterminal, y va todo bien sin problemas.Asi que os escribo aqui, por si alguien puede ayudarme a solucionar este problema.

En la recepcion, el microcontrolador solo manda un byte, pero en la aplicacion es como si recibiera mas y ademas sin sentido:

Puerto Recibe : 22
3El Puerto Recibe : 4
56a3
78