本帖最后由 ginott 于 2015-12-22 15:18 编辑
现在用1343做一个自定义的HID设备,功能都能实现,可是遇到一个问题,就是USB不停往PC上传数据;
在此之前,也设计定义成鼠标测试过,在鼠标不移动时,也会不停向PC传0x00的数据,但是鼠标使用起来还是没有多大问题。HID设备就太占资源了,上位机处理起来太麻烦。
我也设置过,当判断数据为0x00时,就不调用写writeEP的函数,但是每次这样设定后,USB都检测不到了。
void USB_EndPoint1 (uint32_t event) {
switch (event) {
case USB_EVT_IN:
GetInReport();
if (hid_int_EP_busy==0)
{
USB_WriteEP(0x81, &InReport[0], sizeof(InReport));
}
break;
}
}
以上程序,在端点1中有一个标志位,若在非busy状态就传送数据,但是这样USB设备就检测不到了;若不加这个标志位,USB可以动作,但会不停的上传数据,假设现在数据值为0x55,0x55……它就会一直不间断地传。
请问要如何设置,才能让HID设备不要不停的往PC传数据。
图片中可以看到空闲状态一直再传00数据
|