阅读:1838回复:17
d12固件问题,高手请进!!
为什么用usb51.lib编的程序能枚举成功,而用周立功的源码改的程序却不能枚举?难道usb51.lib不是源码生成的吗?
急盼解答!! |
|
沙发#
发布于:2004-10-22 16:45
程序改的有问题吧。
|
|
板凳#
发布于:2004-10-22 22:00
我的感觉,光盘提供的源代码驴头不对马嘴,有错误!
|
|
地板#
发布于:2004-10-22 23:18
多看看原程序,肯定是你改得有问题。
|
|
|
地下室#
发布于:2004-11-02 15:37
再跟个,周立功的原代码是乱七八糟,当然不能枚举了。书上的稍清晰正确些,不过用这样的板子,能学到好多东西,急于开发产品嘛,就有点那个了。。。
|
|
5楼#
发布于:2004-11-03 15:04
谢谢大家帮忙!
用改过的源代码可以发现新硬件,但是找不到功能驱动,安装失败! 可是用usb.lib枚举通过,可是它不符和我的要求,又没法改。 大家帮我分析一下什么问题? ps:谁编过上位机应用程序;我需要一份源码 很急很急 |
|
6楼#
发布于:2004-11-05 09:01
不知道你想该成那类型的DEVICE,这个就不怎么好说了,在系统没注册过驱动之前,它是自己找不到驱动的。不过从你现在说的情况来看,是你与描述符有关的地方(描述符)有问题,检查检查描述符吧。
|
|
7楼#
发布于:2004-11-10 10:25
//设备描述符
code USB_DEVICE_DESCRIPTOR DeviceDescr = { sizeof(USB_DEVICE_DESCRIPTOR), USB_DEVICE_DESCRIPTOR_TYPE, SWAP(0x0100), USB_CLASS_CODE_TEST_CLASS_DEVICE, 0, 0, EP0_PACKET_SIZE, SWAP(0x0471), SWAP(0x0666), SWAP(0x0100), 0, 0, 0, 25 }; //配置描述符 code USB_CONFIGURATION_DESCRIPTOR ConfigDescr = { sizeof(USB_CONFIGURATION_DESCRIPTOR), USB_CONFIGURATION_DESCRIPTOR_TYPE, SWAP(CONFIG_DESCRIPTOR_LENGTH), 1, 1, 0, 0x60, 0x32 }; //接口描述符 code USB_INTERFACE_DESCRIPTOR InterfaceDescr = { sizeof(USB_INTERFACE_DESCRIPTOR), USB_INTERFACE_DESCRIPTOR_TYPE, 0, 0, NUM_ENDPOINTS, USB_CLASS_CODE_TEST_CLASS_DEVICE, USB_SUBCLASS_CODE_TEST_CLASS_D12, USB_PROTOCOL_CODE_TEST_CLASS_D12, 0 }; //端点描述符 code USB_ENDPOINT_DESCRIPTOR EP1_TXDescr = { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x81, USB_ENDPOINT_TYPE_INTERRUPT, SWAP(EP1_PACKET_SIZE), 10 }; code USB_ENDPOINT_DESCRIPTOR EP1_RXDescr = { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x1, USB_ENDPOINT_TYPE_INTERRUPT, SWAP(EP1_PACKET_SIZE), 10 }; code USB_ENDPOINT_DESCRIPTOR EP2_TXDescr = { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x82, USB_ENDPOINT_TYPE_BULK, SWAP(EP2_PACKET_SIZE), 10 }; code USB_ENDPOINT_DESCRIPTOR EP2_RXDescr = { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x2, USB_ENDPOINT_TYPE_BULK, SWAP(EP2_PACKET_SIZE), 10 }; 是这些有问题吗? |
|
8楼#
发布于:2004-11-10 14:34
哈哈,当然是这儿的问题了。看到了没,没有端点0的描述符!!
|
|
9楼#
发布于:2004-11-10 16:29
哈哈!
高人一针见血! 兄弟,还得帮忙,怎么写,不麻烦的话,告知 感动中。。。 |
|
10楼#
发布于:2004-11-10 16:36
为什么周立功的书上没有提到??
源码上也没有? |
|
11楼#
发布于:2004-11-10 18:39
把枚举时bushound抓到的数据给你
帮我分析一下 12.1 DI 02 . 1.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 2.1.0(2) 12.0 DI 01 01 01 00 .... 2.2.0 12.0 CTL 23 01 10 00 01 00 00 00 CLEAR FEATURE 4.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 5.1.0(2) 12.0 DI 01 01 00 00 .... 5.2.0 12.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 7.1.0 12.1 DI 02 . 8.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 9.1.0 12.0 DI 03 01 10 00 .... 9.2.0 12.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 10.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 11.1.0 12.0 DI 03 01 00 00 .... 11.2.0 12.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 12.1.0 12.0 USTS 04 00 00 80 stall pid 12.2.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 13.1.0 12.0 DI 03 01 00 00 .... 13.2.0 12.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 14.1.0 12.1 DI 02 . 15.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 16.1.0 12.0 DI 03 01 10 00 .... 16.2.0 12.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 17.1.0 12.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 18.1.0 12.0 USTS 04 00 00 80 stall pid 18.2.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 19.1.0 12.0 DI 03 01 00 00 .... 19.2.0 12.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 20.1.0 12.1 DI 02 . 21.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 22.1.0 12.0 DI 03 01 10 00 .... 22.2.0 12.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 23.1.0 12.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 24.1.0 12.0 USTS 04 00 00 80 stall pid 24.2.0 12.0 CTL 23 01 01 00 01 00 00 00 CLEAR FEATURE 25.1.0 12.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 26.1.0 12.0 DI 00 01 00 00 .... 26.2.0 |
|
12楼#
发布于:2004-11-11 10:09
端点0不需要你自己写他的配置的,它是默认的
多看看资料吧 |
|
|
13楼#
发布于:2004-11-11 10:30
能看看我的bushound 抓的数据,怎么没传回描述符,是延迟问题吗?
|
|
14楼#
发布于:2004-11-11 22:27
why is the value of bnumConfiguations 25 in your device descriptior? mybe it is wrong.....
|
|
15楼#
发布于:2004-11-15 09:05
哪里出问题了?
不太明白? |
|
16楼#
发布于:2004-11-15 09:16
端点0是初始化时候用到的
|
|
|
17楼#
发布于:2004-11-15 10:27
能告诉我怎么获取chipid吗?我用伟福的仿真器,
程序如下: void main(void) { P_HWInit(); D12_ReadChipID(); reconnect_USB(); //联接USB总线 while(1) { usbserve(); //USB服务数据处理 } while(1) DISABLE; } 我怎么看到id 号啊? 多谢了! |
|