[STM32F1] USB HOST向自定义的HID类设备发送数据

[复制链接]
1660|2
 楼主| 化羽成龙 发表于 2016-3-31 15:58 | 显示全部楼层 |阅读模式
根据官方给的STM32主机模式去读取鼠标信息的例程进行修改,枚举没有问题,当通过set report发送数据时,要发送136字节,结果只发送了两包32字节数据就NAK退出了,请问是什么原因
wahahaheihei 发表于 2016-3-31 21:52 | 显示全部楼层
使用STM32的USB开发库实现:
1)在usb_prop.c的函数CustomHID_Data_Setup()中,GET_PROTOCOL之后增加的代码变为这样:
/*** GET_REPORT ***/
else if((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
&& RequestNo == GET_REPORT)
{
if (数据未准备好)
return USB_NOT_READY;
CopyRoutine = CustomHID_GetReport;
}
STM32将以NAK回应PC端的IN请求。
2)同样增加一个函数CustomHID_GetReport。
3)在数据准备好之后(注意准备数据的时间不能太长,否则PC端会做超时处理),执行下述操作:
pInformation->Ctrl_Info.CopyData = CustomHID_GetReport;
pInformation->Ctrl_Info.Usb_wOffset = 0;
CustomHID_GetReport(0);
pInformation->Ctrl_Info.PacketSize = pProperty->MaxPacketSize;
DataStageIn();
5768340 发表于 2016-6-6 18:53 | 显示全部楼层
使用USB3.5的库版本中怎么去解决这个问题呢?我看到这个解决方案应该是HS模式下的,如果FS模式下该怎么去判断呢 ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部