打印

STM32 usb 移植GD 问题

[复制链接]
766|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shanzhihun|  楼主 | 2020-11-6 08:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是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;
}

/////////////////////////////////////////
st的这几句    if (hhid->state == HID_IDLE)
    {
      hhid->state = HID_BUSY;
作用是什么,在GD上怎么写呢,麻烦各位大佬看看啊。

使用特权

评论回复
沙发
shanzhihun|  楼主 | 2020-11-6 13:00 | 只看该作者
千斤顶

使用特权

评论回复
板凳
chenqianqian| | 2020-11-6 18:49 | 只看该作者
判断当前USB状态是否空闲,若是,将状态设置为繁忙。

使用特权

评论回复
地板
shanzhihun|  楼主 | 2020-11-7 14:08 | 只看该作者
chenqianqian 发表于 2020-11-6 18:49
判断当前USB状态是否空闲,若是,将状态设置为繁忙。

在GD芯片程序上怎么判断USB空闲呢?请指点下

使用特权

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

本版积分规则

13

主题

41

帖子

2

粉丝