阅读:2119回复:9
请教:EZ-USB FX2与主机bulk传输的问题
我在固件中的Td_Init()中将端点配置好,并用递增的数填充端点2的缓冲区,在主机端用bulk_reak控制码的时候,deviceiocontrol函数的返回值总是零,没有数据读入。这是小弟第一次做usb的设备
以下是Td_Init()中初始化的代码 请各位看看问题出在哪里 int i=0; // set the CPU clock to 48MHz CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ; // set the slave FIFO interface to 48MHz IFCONFIG |= 0x40; EA=1; //enable all interrupt EIE=0x10; //enable interrupt 6 PORTECFG=0x20; //PortE.5 as interrupt 6 PORTACFG=0X00; //set PortA as common IO EP6CFG=0xA2; //set endpoint6 out bulk type, buffer size 512 bytes, double buffering EP2CFG=0xE2; //set endpoint2 in bulk type, buffer size 512 bytes, double buffering for(i=0;i<512;i++) { EP2FIFOBUF=i+1; //fill the buffer with increased data } SYNCDELAY; //write twice because of double buffering EP2BCH = 0x02; SYNCDELAY; EP2BCL = 0x00; for(i=0;i<511;i++) //write twice because of double buffering { EP2FIFOBUF=i; //fill the buffer with increased data } SYNCDELAY; //write twice because of double buffering EP2BCH = 0x02; SYNCDELAY; EP2BCL = 0x00; |
|
沙发#
发布于:2005-04-06 16:56
应该是在将数据写入缓冲区以后,再将计数写入端点就准备好了吧,当主机发送bulk read的命令的时候,就会将数据送入主机的缓冲区了吧
主机端的发送命令代码是这样的 //commit the read-transfer now unsigned char InBuffer[512]; bulkControl.pipeNum = 1; bResult = DeviceIoControl(hDevice,IOCTL_EZUSB_BULK_READ,&bulkControl, sizeof(BULK_TRANSFER_CONTROL),InBuffer,512,&nBytes,NULL); if(bResult!=TRUE) { AfxMessageBox(\"failed to read the data !!!\"); CloseHandle(hDevice); } |
|
板凳#
发布于:2005-04-06 17:21
在应用程序中发送bulkread的命令之前
也将我要用的管道复位了 :) |
|
地板#
发布于:2005-04-06 20:11
有人知道问题出在哪里吗? :)
|
|
地下室#
发布于:2005-04-07 08:28
谢谢帮忙看看吧
我还是不知道问题在哪里 :) |
|
5楼#
发布于:2005-04-10 21:59
注意sizeof(BULK_TRANSFER_CONTROL)的值,可能会有两种不同值
[编辑 - 4/10/05 by lzyuer] |
|
6楼#
发布于:2007-01-26 13:31
我也遇到同样的问题,高手能来讲解哈啊
|
|
7楼#
发布于:2007-01-30 20:46
试试bulkControl.pipeNum = 0
我记得EP2 0 EP4 1 EP6 2 EP8 3 ![]() |
|
8楼#
发布于:2007-01-31 16:10
关于你这个问题主要是端点的长度配置,此外还要注意对端点状态的检测,当为空闲时才可以在固件端接收数据,在发送数据时要提交你自己的数据包,还有一点就是设置为手动控制
INPKTEND=0x82; SYNCDELAY; INPKTEND=0x82; SYNCDELAY; Good Luck! |
|
9楼#
发布于:2008-07-14 16:47
把这条语句 IFCONFIG |= 0x40; 注释掉看看!
|
|