阅读:1844回复:4
请问用过easyd12.dll做应用程序的各位大虾一个问题
各位大虾,现在我用周立功提供的eaayd12.dll.来做上位机的应用程序。用vb来编程实现遇到了一个问题
就是在easyd12.dll库中提供了可以向端点1,2直接读写的四个函 数分别为: ReadPort1()、WritePort1()、ReadPort2()、 WritePort2(),我在vb调用的过程中当调用WritePort1()和 WritePort2()时候可以在固件看到进入了相应的输入中断 但是在调用ReadPort1()和ReadPort2()的时候总是不能读出数据 并且提示我接收响应失败!!!如果我在固件程序中加端点观察 发现并不是进入的端点1或者2的输出中断,而是进入了控制端点 的输入中断!!! 那么我有一个疑问,为为什么想端点写入的时候可以直接进入各 自端点的中断,而输出却不行,非要进入控制输入中断???? 还有为什么会提示接收响应失败???请各位大下指点一二 或者由谁做个相关的程序不知道可否给小弟一份,因为不懂vc 所以只能用这些简单的函数来做。希望能够得到大家的帮助!!! 中断 |
|
沙发#
发布于:2004-09-22 17:40
不知你的问题解决了没有,我也碰到和你一样的问题,能否指点一二
|
|
板凳#
发布于:2004-09-22 22:25
解决了!!!!
就是把你要写的数据写进相应的端点的缓冲啊! 下面是我的代码你看看吧!!呵呵!我记得我们一起讨论过的吧! void main_txdone(void) { unsigned char i ; D12_ReadLastTransactionStatus(5); /* Clear interrupt flag */ for (i=0;i<32;i++) AD(); DataBuf[2*i]=Ad_memal; DataBuf[2*i+1]=Ad_memah; } D12_WriteEndpoint(5, 64, DataBuf); } void main_rxdone(void) { unsigned char len; D12_ReadLastTransactionStatus(4); /* Clear interrupt flag */ len = D12_ReadEndpoint(4, 64, EpBuf); //+ ioCount); if(len!=0) { outportusb(command,5); outportusb(command,0xFA); } } 上位机要先写就可连续读了!! 上面是论坛里面一个人的回答,我市了,好用的 |
|
地板#
发布于:2004-09-22 22:27
多翻翻旧贴很重要哦!!
|
|
驱动牛犊
![]() |
地下室#
发布于:2007-11-02 15:06
原来多年以前大家就已经把D12研究透了呀,我07年才来弄,而且还没有成功,惭愧呀
|
|