你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于USBH_HID_SetReport函数如何使用

[复制链接]
mscs13179 提问时间:2017-8-8 16:38 /
知识背景:对于HID类,OUT端点并不是必须的.
根据USB HID协议,当没有专用的OUT端点时,set report使用control端点实现,具体就是通过HID类的请求,然后通过Data stage携带set report数据.

现在遇到一个项目需要进行双向通讯的HID。使用STM32F105作为usb host,
1、目前在在en.stm32cubef1\STM32Cube_FW_F1_V1.4.0\Projects\STM3210C_EVAL\Applications\USB_Host\HID_Standalone基础上修改能够正常的读取input端点发送的数据。
2、《UM1720【用户手册】STM32Cube™ USB 主机库》中提到USBH_HID_SetReport[通过控制通道发送报告数据 ],不知道如何使用这个USBH_HID_SetReport函数。
收藏 评论3 发布时间:2017-8-8 16:38

举报

3个回答
海迹天涯 回答时间:2017-8-8 17:25:29
我也想知道,给你顶起
mscs13179 回答时间:2017-8-9 11:37:51
海迹天涯 发表于 2017-8-8 17:25
我也想知道,给你顶起

我的猜测
static USBH_StatusTypeDef USBH_HID_ClassRequest(USBH_HandleTypeDef *phost)中添加

case HID_REQ_SET_REPORT:
    {
        uint8_t buff[2] = { 0x0, 0x0 };//这测试固定为常量
        USBH_StatusTypeDef ret = USBH_HID_SetReport(phost, 2, 0, buff, 1);

        if ((ret == USBH_OK) || (USBH_NOT_SUPPORTED == ret))
        {
            HID_Handle->ctl_state = HID_REQ_IDLE;
            status = USBH_OK;
            /* all requests performed*/
            phost->pUser(phost, HOST_USER_CLASS_ACTIVE);

        }
    }
    break;
但是不知道如何触发这个
如何触发这个HID_Handle->ctl_state = HID_REQ_SET_REPORT
mscs13179 回答时间:2017-8-16 15:51:17
海迹天涯 发表于 2017-8-8 17:25
我也想知道,给你顶起

我原理通了,弄个简单demo工程教程思路和工程

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版