Hola.
Hace varios dias que estoy trancado con el puerto USB.
Estoy tratando de usar la Microchip PIC18 USB CDC Framework.
Al momento tengo el siguiente problema envio bien pero recibo mal.
Programé un echo para enviar al pic y recibir en la hyperterminal. El problema que tengo es que una vez que envio el dato desde la hyperterminal el pic se queda recibiendo el ultimo caracter apretado hasta que toco otro. Despues se queda recibiendo el ultimo y asi sucesivamente.
Mi main es el siguiente:
void main(void){
unsigned char dataReceived;
unsigned char data[2];
unsigned char *pData = &data; // pointer to "data"
InitializeSystem();
while(1){
USBDeviceTasks();
if((USBGetDeviceState() \< CONFIGURED_STATE) || (USBIsDeviceSuspended() == TRUE)){
continue;
}else{
CDCTxService();
//Run application code.
dataReceived = getsUSBUSART(pData, 1); // Read one byte from buffer
if(dataReceived > 0){ // if new data received
if(USBUSARTIsTxTrfReady()){
mUSBUSARTTxRam(pData, 1); // echo back data
dataReceived = 0;
}
}
}
}
}
También intente usando el CCS con el siguiente codigo,
void main() {
usb_cdc_init();
usb_init();
while (!usb_cdc_connected()) {}
while (true)
{
usb_task();
if(usb_enumerated())
{
if (usb_cdc_kbhit())
{
c = usb_cdc_getc();
putc(c);
}
if (kbhit())
{
d=getc();
usb_cdc_putc(d);
}
}
}
}
Alguien me puede ayudar?
Gracias