Пример #1
0
/* This function sends multiple bytes to the USB host. */
status_t USBVC001_SendData(const char* const DataBuffer,
                            const uint16_t Length)
{
  status_t Status = (uint32_t)DAVEApp_SUCCESS;

  do{

    if(Length == 0)
    {
      Status = USBVC001_ERROR;
      break;
    }

    /* Send data to USB host.*/
    if(CDC_Device_SendData(&USBVC001_CDCInterface, (const char *)DataBuffer,
    				 Length) != ENDPOINT_RWSTREAM_NoError)
    {
      Status = USBVC001_USBCDC001_ERROR;
    }
    else if(CDC_Device_Flush(&USBVC001_CDCInterface) != ENDPOINT_READYWAIT_NoError)
    {
      Status = USBVC001_USBCDC001_ERROR;
    }
   
  }while(0);

  return Status;
}
Пример #2
0
void VCOM_echo(void)
{
	if(CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface))
	{
		in_buff[0] = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
		CDC_Device_SendData(&VirtualSerial_CDC_Interface, (char *)in_buff, 1);
		Endpoint_ClearIN();
	}
}
Пример #3
0
void VCOM_bridge(void)
{
	uint32_t recv_count;
	recv_count = CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface);
	while(recv_count--)
	{
		out_buff[0] = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
		uart_send_byte(out_buff[0]);
	}
	recv_count = uart_get_data(in_buff);
	if(recv_count)
	{
		CDC_Device_SendData(&VirtualSerial_CDC_Interface, (char *)in_buff, recv_count);
		Endpoint_ClearIN();
	}
}