The HAL_PCD_EP_Open function configures an out endpoint so that the host can actually write data to it, which is kind of a problem because if you did not use HAL_PCD_EP_Receive then ep->xfer_buff is NULL and USB_ReadPMA will generate a hard fault :(T...