阅读:1189回复:1
救命那,兄弟们!!!PC通过readfile读取D12不成功!
我用D12来实现usb接口,用D12test测试我的USB接口的端点2,writefile时PC机通过USB口往MCU发送数据成功,但是readfile时MCU往PC机发送数据失败!具体现象如下:
1.监视D12test发现:PC机顺利打开USB设备和相应的USB管道,但是readfile读取数据失败。 2.如果在readfile前,在固件中往D12相应端点中写入PC执行readfile读取的数据,那么readfile返回false,读取失败;如果在readfile前,在固件中不往D12相应端点中写入任何数据,那么readfile返回true,而读取的数据数为0,读取还是失败。 3.用bushound监视程序的运行发现,可以看到PC机往MCU写的数据和PC机从MCU读的数据(因为我的固件中是先判断PC机输入的数据再决定是否向D12的相应端点写入PC来读取的数据,所以为了用readfile来读取数据PC需要先通过writefile向MCU写入规定的数据)。如果我在writefile后readfile一次,在bushound上看不到pc机读取的数据;如果我在writefile后readfile两次,在bushound上可以看到PC机读取的数据。 不知道是什么原因导致pc机readfile失败???在bushound上可以看到PC通过readfile读取的数据不知道能说明什么???是否说明数据已经读入电脑了,导致readfile失败是否可能就是驱动或测试程序的问题???? |
|
沙发#
发布于:2004-06-02 19:10
现在我也碰到这个问题,急盼那个高手简答一下!!!
我的问题是我还扩展了一个RAM,固件里没用RAM时,我的读写都正常,但是用到RAM时,PC读数据就不行了,而且我用示波器看发现RAM的片选就一直没有有效过,我的端点2IN固件如下: //主端点IN控制 void main_txdone(void) { unsigned char i; D12_ReadLastTransactionStatus(5); //清中断标志位 MCU_D12CS = 0x1; MCU_RAMCS = 0x0; //外部RAM片选 databuff=0x0000; for(i=0;i<64;i++) { EpBuf = *databuff; databuff++; } MCU_RAMCS =0x1; MCU_D12CS = 0x0; D12_WriteEndpoint(5, 64, EpBuf); } 我的固件这样写有没有问题 楼上的,我用USBHOUND监视只能监视到枚举过程,其他的就没了,我用的是5.0版的,这是怎么回事啊! 我的QQ:11624074,共同探讨一下!! |
|