打印
[STM32F4]

USB 发送问题

[复制链接]
455|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shanzhihun|  楼主 | 2020-11-6 09:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是ST的发送
/**
  * @brief  USBD_HID_SendReport
  *         Send HID Report
  * @param  pdev: device instance
  * @param  buff: pointer to report
  * @retval status
  */
uint8_t USBD_HID_SendReport(USBD_HandleTypeDef  *pdev,
                            uint8_t *report,
                            uint16_t len)
{
  USBD_HID_HandleTypeDef     *hhid = (USBD_HID_HandleTypeDef *)pdev->pClassData;

  if (pdev->dev_state == USBD_STATE_CONFIGURED)
  {
    if (hhid->state == HID_IDLE)
    {
      hhid->state = HID_BUSY;
      USBD_LL_Transmit(pdev,
                       HID_EPIN_ADDR,
                       report,
                       len);
    }
  }
  return USBD_OK;
}
我想改成GD的
/*!
    \brief      send custom HID report
    \param[in]  pudev: pointer to USB device instance
    \param[in]  report: pointer to HID report
    \param[in]  len: data length
    \param[out] none
    \retval     USB device operation status
*/
uint8_t  custom_hid_report_send (usb_core_handle_struct *pudev, uint8_t *report, uint16_t len)
{
         for(uint8_t n = 0; n < 100; n ++)   
   {
                if(pudev->dev.status == USB_STATUS_CONFIGURED)  //检测USB连接状态
                {
               
                    usbd_ep_tx (pudev, CUSTOMHID_IN_EP, report, len);

               
                }
      
delay(1);
        }
    return USBD_OK;
}

请问这三个判断是干什么用的
  if (pdev->dev_state == USBD_STATE_CONFIGURED)
  {
    if (hhid->state == HID_IDLE)
    {
      hhid->state = HID_BUSY;

如果去掉可不可以

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

41

帖子

2

粉丝