OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4743|回复: 8

求问,STM32F103,USB通信中报告描述符不能超过64字节的问题。。

[复制链接]

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2015-11-12
在线时间
22 小时
发表于 2017-9-13 04:03:26 | 显示全部楼层 |阅读模式
1金钱
如题,如果HID报告描述符超过64个字节,那么超出的部分都会截断(EP0最多只能发送或者接收64字节数据),剩下的不再发送给PC了,不是应该超出的会分包再次发送给PC的么?
其他的描述符都会分包发送给PC,就是报告描述符不会。。。求问大师们这是哪里的问题?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2015-11-12
在线时间
22 小时
 楼主| 发表于 2017-9-13 04:10:55 | 显示全部楼层
有的HID设备报告描述符超出了64个字节,结果超出的部分都无法发送给PC,导致PC无法识别,不知道从哪里入手解决这个问题。。。
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2015-11-12
在线时间
22 小时
 楼主| 发表于 2017-9-13 04:19:01 | 显示全部楼层
RESULT Joystick_Data_Setup(uint8_t RequestNo)
{
  uint8_t *(*CopyRoutine)(uint16_t);

  CopyRoutine = NULL;
  if ((RequestNo == GET_DESCRIPTOR)
      && (Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT))
      && (pInformation->USBwIndex0 == 0))
  {
    if (pInformation->USBwValue1 == REPORT_DESCRIPTOR)
    {
      CopyRoutine = Joystick_GetReportDescriptor;
    }
    else if (pInformation->USBwValue1 == HID_DESCRIPTOR_TYPE)
    {
      CopyRoutine = Joystick_GetHIDDescriptor;
    }

  } /* End of GET_DESCRIPTOR */

  /*** GET_PROTOCOL ***/
       
else if ((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
           && RequestNo == GET_PROTOCOL)
  {
    CopyRoutine = Joystick_GetProtocolValue;
  }
       
  if (CopyRoutine == NULL)
  {
    return USB_UNSUPPORT;
                //return USB_SUCCESS;
  }
  pInformation->Ctrl_Info.CopyData = CopyRoutine;
  pInformation->Ctrl_Info.Usb_wOffset = 0;
  (*CopyRoutine)(0);

  return USB_SUCCESS;
}

是不是要自己想办法在这里分包处理????
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2015-11-12
在线时间
22 小时
 楼主| 发表于 2017-9-13 17:35:24 | 显示全部楼层
自己顶。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-9-14 00:22:39 | 显示全部楼层
帮顶
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2015-11-12
在线时间
22 小时
 楼主| 发表于 2017-9-17 11:17:48 | 显示全部楼层
自己再顶顶。。。真的没人懂么?
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2017-9-21
在线时间
7 小时
发表于 2017-9-21 16:41:10 | 显示全部楼层
刚开始学USB通信,楼主能不能发个例程给我看看啊(806290344@qq.com),发送和接收函数那边看的浑浑噩噩的,手动比心
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2017-12-12
在线时间
3 小时
发表于 2017-12-12 22:51:38 | 显示全部楼层
我也遇到了同样的问题,楼主求赐教!我加你好友了,能否聊下
回复

使用道具 举报

1

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2017-9-1
在线时间
19 小时
发表于 2018-11-6 12:20:32 | 显示全部楼层
有的HID设备报告描述符超出了64个字节
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 17:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表