qweasdzxc
驱动牛犊
驱动牛犊
  • 注册日期2003-07-14
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1241回复:7

请教

楼主#
更多 发布于:2003-08-07 09:54
D12的固件程序中,可以看到如下用来发送描述符的程序:
if (bDescriptor == USB_DEVICE_DESCRIPTOR_TYPE) {
code_transmit((unsigned char code *)&DeviceDescr, sizeof(USB_DEVICE_DESCRIPTOR));
}
else
if (bDescriptor == USB_CONFIGURATION_DESCRIPTOR_TYPE) {
code_transmit((unsigned char code *)&ConfigDescr, CONFIG_DESCRIPTOR_LENGTH);
}
但是只有发送设备和配置描述符的程序,没有看到发送端点描述符的程序,请问是怎么回事?
maxipeiz
驱动小牛
驱动小牛
  • 注册日期2003-01-28
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-07 10:09
无分不答
天高任鸟飞
qweasdzxc
驱动牛犊
驱动牛犊
  • 注册日期2003-07-14
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-07 10:14
请问想要多少分,如何给分?如肯指教,一定给分
david_liuccy
驱动牛犊
驱动牛犊
  • 注册日期2003-07-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-07 11:59
配置描述符与端点描述符是用一个程序发送的。
在一个数据表中。

如下表一样。
typedef struct {
USB_config_desc_t uja_dev_config_desc;
USB_interface_desc_t uja_interface_desc;
USB_hid_desc_t       uja_dev_hid_desc;
USB_endpoint_desc_t uja_dev_endpoint1_desc;
} USB_long_config_desc_t;


你的是不是 PC发出这样的数据:
USB EP0 Revice Value:[80] [6] [0]  [2]  [0]  [0]  [9]  [0]
这时,你就发出配置描述符的前9个(USB_long_config_desc_t)。

PC又发出:
USB EP0 Revice Value:[80] [6] [0]  [2]  [0]  [0]  [ff]  [0]

这时你就把:(USB_long_config_desc_t)配置描述符与端点描述符发送出去,就可以进行下一步
了。

祝你好运。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-07 12:54
D12的固件程序中,可以看到如下用来发送描述符的程序:
if (bDescriptor == USB_DEVICE_DESCRIPTOR_TYPE) {
code_transmit((unsigned char code *)&DeviceDescr, sizeof(USB_DEVICE_DESCRIPTOR));
}
else
if (bDescriptor == USB_CONFIGURATION_DESCRIPTOR_TYPE) {
code_transmit((unsigned char code *)&ConfigDescr, CONFIG_DESCRIPTOR_LENGTH);
}
但是只有发送设备和配置描述符的程序,没有看到发送端点描述符的程序,请问是怎么回事?
 


老兄,怎么会没有呢,ENDPOINT描述符就是载你上面那个else里面呀!配置、接口、端点描述符是在一起的。
你可以看看你那个ConfigDescr的定义,找不到再程序里搜一下呀,把相关的几个东西都看看不就知道怎么回事了吗?
stanleyhe
驱动牛犊
驱动牛犊
  • 注册日期2003-06-15
  • 最后登录2006-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-07 13:06
程序中将配置描述符,接口描述符及端点描述符放在一起发给PC的。你可以从CONFIG_DESCRIPTOR_LENGTH的定义

#define CONFIG_DESCRIPTOR_LENGTH    sizeof(USB_CONFIGURATION_DESCRIPTOR) + sizeof(USB_INTERFACE_DESCRIPTOR) + (NUM_ENDPOINTS * sizeof(USB_ENDPOINT_DESCRIPTOR))

中可以知道的。
qweasdzxc
驱动牛犊
驱动牛犊
  • 注册日期2003-07-14
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-07 13:57
ConfigDescr里面定义了描述符的总长CONFIG_DESCRIPTOR_LENGTH ,是不是这样用ConfigDescr就可以将接口、端点描述符一起发送?USB_CONFIGURATION_DESCRIPTOR、USB_INTERFACE_DESCRIPTOR、USB_ENDPOINT_DESCRIPTOR这三个描述符是定义在不同的结构体里面,还是定义在同一个结构体里面?

qweasdzxc
驱动牛犊
驱动牛犊
  • 注册日期2003-07-14
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-08-08 15:32
谢谢david_liuccy  jinghuiren  stanleyhe三位的帮助,我已经枚举成功了。





游客

返回顶部