阅读:869回复:0
菜鸟请教D12驱动应用程序问题
小弟使用D12和51做一个大量数据传输的东西。
固件使用ZLG的,驱动是用DriverStudio3.1直接生成的。 使用DS里面的函数OpenByInterf()打开USB设备,用ReadFile()阻塞模式来读取USB数据 因为在51那里是连续发的,所以我的应用程序也是循环读取,但老是读不到数据 如果只是读一次(ReadFile())的话,就可以读到数据 但我使用循环读的时候,在读完一帧数据的时候(端点2,64Byte),再Sleep几十微秒,也可以正确的读到数据! 但使用ZLG的库函数的WritePort2()来读的时候,又有些时候会接收数据出错,而且就算读取正确传输速率才10K不到(11.0592的晶振) 请问,如果要在应用程序里面读取USB传输过来的数据,是不是每次读完之后要等待一定的时间,还是要发个ACK信号? 或者要把读取数据的代码放到到驱动里面? 还是读取的方式用非阻塞的? 请各位DX帮助下~ |
|