Hola! Estoy empezando a toquetear el USB haciendo una transmisión emulando RS-232 (modo cdc). Ya tengo las librerías, el PC reconoce el PIC como puerto COM y demás. El problema es que el PIC sí envía correctamente al PC, pero cuando envío algo desde el PC el PIC no lo reconoce (mejor, lo reconoce como 0x00). Estoy utilizando un PIC18f14k50, y programo en CCS.
Aquí está el programa:
////////////////////////////////////////////////////////////////////////////////
#include <18F14k50.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,PLLEN,NOMCLR
#use delay(clock=48000000)
#include ".\libreria\usb_cdc.h"
#include ".\libreria\usb_desc_cdc.h"
void main() {
char x;
set_tris_c(0x00); // portc como salidas
output_c(0x00);
usb_cdc_init(); //configuración inicial
usb_init(); //inicializamos stack USB
while(!usb_cdc_connected()){}//espera a detectar una conexión
do{
usb_task(); //tareas básicas
if(usb_enumerated()){ //espera a que el disp. sea enumerado
if(usb_cdc_kbhit()){ //espera a nuevos caracteres en el buffer
x=usb_cdc_getc();
output_c(x);
usb_cdc_putc(x);
usb_cdc_putc(0x62); // 'b'
}
}
}while(TRUE);
}
//////////////////////////////////////////////////////////////////////////////
Cada vez que hago un envío desde el PC, el PIC me devuelve 00 62, en lugar de devolver lo que le he enviado yo (el puerto C siempre está a 0)
Alguien tiene alguna idea?