Autor Tema: Datos USB a SERIE  (Leído 56 veces)

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

Desconectado Ruco

  • PIC10
  • *
  • Mensajes: 7
Datos USB a SERIE
« en: 23 de Septiembre de 2020, 17:18:28 »

Amigos. Les agradeciera su orientación para este pequeño código pero que no puedo terminar. Lo que estoy haciendo es leer datos que llegan por el usb de mi PC en modo HID, bueno, lo que leo del usb quiero enviarlo por el puerto serie del pic para verlo por hyperterminal. Osea que lo que recibo por USB del PIC lo quiero enviar por el pueto serie del mismo pic.

Bueno pues leo los datos correctamente, pero cuando los envío por el puerto serie para verlo por hyperterminal me salen letras raras, creo que no lo estoy enviando de manera correcta o no estoy capturando bien la cadena.

Aquí el código:

Código: C#
  1.  
  2.                
  3.          char data[16];
  4.          
  5.          void main()
  6.          {
  7.          porta=0x00; portb=0x00; portc=0x00; portd=0x00; porte=0x00;
  8.          set_tris_c(0b00000000);
  9.          usb_init_cs();                                                             // Initializo USB en hardware
  10.          delay_ms(1000);
  11.          
  12.          while(TRUE){
  13.          usb_task();
  14.          if(usb_enumerated()){                                                      // Si el dispositivo ha sido enumerado por la PC
  15.          if(usb_kbhit(1)){                                                          // Si endpoint1 tiene datos en su búfer de recepción
  16.          usb_get_packet(1, data, 16);                                               // Leer hasta 16 bytes del búfer endpoint1 y guardarlo en datos variables
  17.          printf("%s",data);
  18.          
  19.          delay_ms(500);                                                             // Muestra los bytes recibidos en la pantalla LCD y espera 500 mS
  20.          usb_put_packet(1, data, 16, USB_DTS_TOGGLE);                               // Devuelve los bytes recibidos
  21.          }
  22.          }
  23.          }
  24.          }
  25.  

data[16] es lo que recibo por usb y es lo que necesito enviar por serial al hyperterminal.

Asi lo trato de enviar:

Código: C++
  1. printf("%s",data);
  2.  

Alguna ayuda por favor.