/**
 * @brief  USBH_HandleControl
 *         Handles the USB control transfer state machine
 * @param  pdev: Selected device
 * @retval Status
 */
USBH_Status USBH_HandleControl(USB_OTG_CORE_HANDLE *pdev, USBH_HOST *phost)
{
    switch (phost->Control.state)
case CTRL_DATA_IN_WAIT: URB_Status = HCD_GetURB_State( pdev, phost->Control.hc_num_in ); /* check is DATA packet transfered successfully */ if (URB_Status == URB_DONE) { phost->Control.state = CTRL_STATUS_OUT; } /* manage error cases*/ else // add -- only when if (URB_Status != URB_DONE)
if (URB_Status == URB_STALL)
      {
        /* In stall case, return to previous machine state*/
        phost->gState = phost->gStateBkp;

        phost->Control.state = CTRL_STALLED; // add

// SETUP DATA ACK : IN : STALL
} }

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-20
  • 2022-02-23
  • 2021-12-03
  • 2021-09-16
  • 2021-11-17
  • 2021-10-08
猜你喜欢
  • 2021-12-19
  • 2021-10-07
  • 2021-11-15
  • 2022-12-23
  • 2021-08-20
  • 2021-10-14
  • 2021-10-21
相关资源
相似解决方案