阅读:1698回复:8
求救,应用程序如何读取某一端点呢
68013的芯片,采用slave fifo方式,当端点2充满数据后,就可以读取了,可是在应用程序中,如下代码可以读取数据,但是管道号和端点号是怎么对应的呢?
outValue=0x1A; bulkControl.pipeNum = 6; bResult = DeviceIoControl (hDevice, IOCTL_EZUSB_BULK_WRITE, &bulkControl, sizeof(BULK_TRANSFER_CONTROL), &outValue, 1, &nBytes, NULL); |
|
沙发#
发布于:2005-01-10 22:36
自己顶一下
|
|
板凳#
发布于:2005-01-14 21:42
你好,我在和你做一样的工作,也是68013fifo模式,
用ep2来读大量的bulk数据,同样是要开始编app了, 虽然我帮不了你但帮你定一下, 我觉的应该用read那个函数来读端点的数据吧,管道的定义好象在驱动程序中定义的,你可以在驱动的原码中找找,我的qq是12049623 大家一起讨论, 问你一个问题,如果一次顺次的读大量的数据到pc,用deviceiocontrol函数来读ep2,那其中的参数应该怎么来定呢? 如果定为512,那是每执行一次这个函数只读512字节,还是有多少读多少呢?还有pc中的内存要怎么给他分配呢? |
|
地板#
发布于:2005-01-14 22:40
找PIPE的句柄值
|
|
|
地下室#
发布于:2005-01-15 00:49
我自己试了一下,好像可以了。先到固件程序中的.a51文件,把端点个数加一个,然后到端点描述符中增加端点2,设置为BULK,IN,然后下载,在控制面板中,按get pipes,就可以发现pipe多了一个,这样就可以得到对应的pipe号了。如何在自己的应用程序中得到pipe号,还不知道啊。readfile和deviceiocontrol应该是一样的吧,我用deviceiocontrol读到返回的512字节的数据的起始地址,直接用file.write写入到某一个文件中去,好像不用自己开辟缓冲区。
|
|
5楼#
发布于:2005-01-15 02:12
d多谢兄弟!把自己的经验分享,
那具体是怎样做的可不可以给我发一份过来呢? 我不知道那个deviceiocontrol函数调用一次读多少个字节是在哪里设,还有用它来读很多个512字节怎么办呢?调用一次它就可以不停的来接收数据了吗? 我的邮箱baiweih@eyou.com 多谢了! |
|
6楼#
发布于:2005-01-15 12:25
你应该用的默认设置,可以看68013的文档说明 “Default Full-Speed Alternate Settings”一节,根据所选择的接口描述符和替换设置值对应。
pipe号从0开始,端点从1out开始。 [编辑 - 1/15/05 by zbcxw] |
|
7楼#
发布于:2005-01-15 18:29
请问楼上,pipe到底是在哪里设置的呢?
是在desc.a51中设置,还是在驱动程序的编写中来设置呢? 具体怎样指定那个pipe对应哪个端点呢? |
|
8楼#
发布于:2005-01-15 20:45
楼上的大侠帮我也发一份吧,我也是要做差不多的任务。我的E-MAIN:lisa8015@163.com
谢谢了先! |
|