After the CH559 host connects to a usb keyboard, a descriptor is received and forwarded to the serial port. However, after pressing the first key on a keyboard, not every packet gets sent to the serial port (get 3 out of 4, the missing packet happens to contain the byte of the key pressed). Subsequent key presses come through fine, it only happens once after the device first connects.
UPDATE: Setting variable s = ERR_SUCCESS when s = 0x23 seems to be functioning workaround.
This change needs to be applied to line 547 in the USBHost.c file
After the CH559 host connects to a usb keyboard, a descriptor is received and forwarded to the serial port. However, after pressing the first key on a keyboard, not every packet gets sent to the serial port (get 3 out of 4, the missing packet happens to contain the byte of the key pressed). Subsequent key presses come through fine, it only happens once after the device first connects.
UPDATE: Setting variable s = ERR_SUCCESS when s = 0x23 seems to be functioning workaround. This change needs to be applied to line 547 in the USBHost.c file