如何使用STM32的USB库支持延迟HID的GET

 我来答
百度网友96ffcf7
推荐于2016-05-15 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
如果要支持HID的GET_REPORT请求,按照上一篇博客中的说明,只需要在STM32 USB开发库中的CustomHID例子中做如下修改即可:

1)在usb_prop.c的函数CustomHID_Data_Setup()中,GET_PROTOCOL之后增加如下代码:

/*** GET_PROTOCOL ***/
else if ((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
&& RequestNo == GET_PROTOCOL)
{
CopyRoutine = CustomHID_GetProtocolValue;
} /* 以上代码为原有例程中的代码 */
/*** GET_REPORT ***/ /* 以下代码支持GET_REPORT */
else if((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
&& RequestNo == GET_REPORT)
{
CopyRoutine = CustomHID_GetReport;
}

2)再增加一个函数:

uint8_t *CustomHID_GetReport(uint16_t Length)
{
if (Length == 0)
{
return 10;
}
return &Report_Buffer[pInformation->Ctrl_Info.Usb_wOffset];
}
3)保证在IN Token到来之前,Report_Buffer中包含有效的数据。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式