主机发出SET IDLE时,如果不进行响应,则会出现“INSTALL PID”的问题,该问题会导致部分电脑在接入STM32的USB设备时,切换大小写等主机发出的数据包,电脑键盘、鼠标驱动被挂起
对usb_prop.c中找到函数 CustomHID_NoData_Setup()
修改前:
RESULT CustomHID_NoData_Setup(uint8_t RequestNo)
{
if ((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
&& (RequestNo == SET_PROTOCOL))
{
return CustomHID_SetProtocol();
}
else
{
return USB_UNSUPPORT;
}
}
修改后:
RESULT CustomHID_NoData_Setup(uint8_t RequestNo)
{
if ((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
&& (RequestNo == SET_PROTOCOL))
{
return CustomHID_SetProtocol();
}
//增加如set idle的处理
if ((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
&& (RequestNo == SET_IDLE))
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载