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
'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:
'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 :
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.