mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
Altered the CDC Deivice and Host Class drivers' receive byte routines, so that no data is indicated by a negative return value.
Added auto flushing of OUT data to the CDC Host Class driver's USBTask function to automatically flush the send pipe buffer.
This commit is contained in:
@@ -101,12 +101,12 @@ int main(void)
|
||||
CheckJoystickMovement();
|
||||
|
||||
/* Discard all received data on the first CDC interface */
|
||||
while (CDC_Device_BytesReceived(&VirtualSerial1_CDC_Interface))
|
||||
CDC_Device_ReceiveByte(&VirtualSerial1_CDC_Interface);
|
||||
CDC_Device_ReceiveByte(&VirtualSerial1_CDC_Interface);
|
||||
|
||||
/* Echo all received data on the second CDC interface */
|
||||
while (CDC_Device_BytesReceived(&VirtualSerial2_CDC_Interface))
|
||||
CDC_Device_SendByte(&VirtualSerial2_CDC_Interface, CDC_Device_ReceiveByte(&VirtualSerial2_CDC_Interface));
|
||||
int16_t ReceivedByte; = CDC_Device_ReceiveByte(&VirtualSerial2_CDC_Interface);
|
||||
if (!(ReceivedByte < 0))
|
||||
CDC_Device_SendByte(&VirtualSerial2_CDC_Interface, (uint8_t)ReceivedByte);
|
||||
|
||||
CDC_Device_USBTask(&VirtualSerial1_CDC_Interface);
|
||||
CDC_Device_USBTask(&VirtualSerial2_CDC_Interface);
|
||||
|
||||
@@ -83,8 +83,7 @@ int main(void)
|
||||
CheckJoystickMovement();
|
||||
|
||||
/* Must throw away unused bytes from the host, or it will lock up while waiting for the device */
|
||||
while (CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface))
|
||||
CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
|
||||
CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
|
||||
|
||||
CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
|
||||
USB_USBTask();
|
||||
|
||||
@@ -97,8 +97,7 @@ int main(void)
|
||||
CheckJoystickMovement();
|
||||
|
||||
/* Must throw away unused bytes from the host, or it will lock up while waiting for the device */
|
||||
while (CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface))
|
||||
CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
|
||||
CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
|
||||
|
||||
CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
|
||||
HID_Device_USBTask(&Mouse_HID_Interface);
|
||||
|
||||
@@ -111,10 +111,9 @@ int main(void)
|
||||
if (CDC_Host_BytesReceived(&VirtualSerial_CDC_Interface))
|
||||
{
|
||||
/* Echo received bytes from the attached device through the USART */
|
||||
while (CDC_Host_BytesReceived(&VirtualSerial_CDC_Interface))
|
||||
putchar(CDC_Host_ReceiveByte(&VirtualSerial_CDC_Interface));
|
||||
|
||||
CDC_Host_Flush(&VirtualSerial_CDC_Interface);
|
||||
int16_t ReceivedByte = CDC_Host_ReceiveByte(&VirtualSerial_CDC_Interface);
|
||||
if (!(ReceivedByte < 0))
|
||||
putchar(ReceivedByte);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user