Autor Tema: Fallo en recepcion usb_cdc, emulando puerto serie con visual basic.net  (Leído 4470 veces)

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

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Saludos compañeros! Hace poco que retome los microcontroladores, y me propuse continuar por donde lo habia dejado, asi que continue con el usb y el modo cdc, la aplicacion del pic funciona correctamente, lo probe con el hyperterminal, el problema viene al realizar la aplicacion que la recepcion me da errores, recibe datos y los muestra, pero de una forma erronea. A continuacion os pongo el codigo que uso, que pretende recibir un byte


Código: [Seleccionar]
'Se declara 1 delegado_Tendra como dato de referencia una variable data del tipo Byte
         Delegate Sub delegado(ByVal data As Byte
              ...........
        Private Sub sp_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles sp.DataReceived
        'se recibe a traves del puerto elegido
        'Dim s As String = sp.ReadExisting
        'Dim escribeport As New delegado(AddressOf Me.mostrar)
        'Me.Invoke(escribeport, s)
        Dim recepcion As Byte
        recepcion = sp.ReadByte
        Dim escribeport As New delegado(AddressOf Me.mostrar)
        Me.Invoke(escribeport, recepcion)
    End Sub

    Sub mostrar(ByVal b As Byte)
        Consola.AppendText("El Puerto Recibe : " & b)
    End Sub

Previamanente lo intente con una cadena pero la recepcion tambien era erronea:

Código: [Seleccionar]
'Se declara 1 delegado_Tendra como dato de referencia una variable data del tipo String
          Delegate Sub delegado(ByVal data As String)

        Private Sub sp_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles sp.DataReceived
        'se recibe a traves del puerto elegido
        Dim s As String = sp.ReadExisting
        Dim escribeport As New delegado(AddressOf Me.mostrar)
        Me.Invoke(escribeport, s)
    End Sub
    Sub mostrar(ByVal d As String)
        Consola.AppendText("El Puerto Recibe : " & d)
    End Sub


El archivo.3 es el tipo cadena, y el archivo.4 el tipo byte, por si alguien los quiere enteros.

Las tramas recibidas son de este estilo :
Código: [Seleccionar]
Puerto Recibe : 22
3El Puerto Recibe : 4
56a3
78
Al pic le mando 22,34,56,78 y devuelve solo 78, al comprobarlo en hyperterminal.

Saludos desde Córdoba, españa

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Re: Fallo en recepcion usb_cdc, emulando puerto serie con visual basic.net
« Respuesta #1 en: 18 de Febrero de 2009, 04:26:36 »
Por si alguien esta usando los ejemplos, o los esta mirando para intentar hacer algun codigo, decirle que la instruccion:

sp.WriteLine(dato(i))

Que se encarga de enviar cada dato del vector, no funciona tampoco como deberia.
Saludos desde Córdoba, españa