阅读:1800回复:8
关于USB通讯的问题,大侠帮帮忙~~~~~~~~~~~~~
我想做一个简单的关于USB通讯的试验,采用的是68013的开发板,驱动程序是自己编写的,定义了两个通讯管道:Pipe0(out端点,地址为:0x01),Pipe1(in端点,地址为:ox82),定义了五个
IOCTL,一个下固件,两个分别用来读取设备描述符和配置描述符,另外两个进行读写,写管道为pipe0,读管道为pipe1. 固件程序定义了两个endpoint,一个是endpoint2(out端点),一个是endpoint6(in端点) 上位机端用DeviceIoControl实现通讯,其它操作都可以实现,但读写失败,读写的管道分别为1,0。 请问各位热心的朋友,问题出在哪里? 是管道定义出了问题吗? |
|
沙发#
发布于:2007-06-19 16:36
没有人知道吗?
急啊 上位机的管道号到底与固件程序的端点号是如何对应的? ![]() |
|
板凳#
发布于:2007-06-19 18:57
可能是管道定义出错
pipe0--endpoint2 0x82 pipe1--endpoint6 0x86 |
|
地板#
发布于:2007-06-20 09:47
谢谢楼上的指点
不过,我也曾经试过将管道定义改成0x02,0x86,可是还是不行啊 读写总是通不过 哪位有经验的朋友指点一下啊 |
|
地下室#
发布于:2007-06-20 13:36
自己顶一哈
|
|
5楼#
发布于:2007-06-20 14:17
用户被禁言,该主题自动屏蔽! |
|
6楼#
发布于:2007-06-20 16:23
谢谢gutian98 !
我是用DS开发的,pipe配置为:pipe0:0x02; pipe1:0x86, 这与固件中端点的定义是一致的,固件中端点的配置为,EP2:0x02; EP6:0x86 这样应该是匹配的吧 还请继续指教,谢谢! |
|
7楼#
发布于:2007-06-27 09:55
用busbound抓一下。看看那步出了问题。上电默地址是0,配置后地址应是0x8x。该器件应该只有一个地址,三个端点共用该地址。
|
|
8楼#
发布于:2007-07-06 08:26
不知道楼主解决了没有,我也有遇到同样的问题啊,主机端发了读写命令固件也接收到了,可就是主机发的数据固件貌似没有读出来。主机调用DeviceIocontrol,用BULK传输,端点1为OUT端点,对应的管道为pipe0,在固件程序中想用EP1OUTBUF[0]和EP1OUTBUF[1]读出来,可是却没有读到正确的数据,不知道该怎么办了,请各位指教一下
|
|