打印

LPC1343 HID USB不停上传数据问题

[复制链接]
1358|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ginott|  楼主 | 2015-12-22 15:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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数据


新建图像 1.bmp (597.97 KB )

新建图像 1.bmp

相关帖子

沙发
computer00| | 2015-12-25 20:51 | 只看该作者
hid_int_EP_busy标志没有及时复位吧?另外你这个逻辑似乎解决不了你的问题。
如果不想发全0,那就直接不发就行了(但对于像按键这样的设备,抬起时是需要发0的,否则操作系统检测不到抬起)。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

1

粉丝