jrmforever
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2010-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1843回复:4

请问用过easyd12.dll做应用程序的各位大虾一个问题

楼主#
更多 发布于:2004-09-22 14:51
   各位大虾,现在我用周立功提供的eaayd12.dll.来做上位机的应用程序。用vb来编程实现遇到了一个问题

  就是在easyd12.dll库中提供了可以向端点1,2直接读写的四个函

数分别为: ReadPort1()、WritePort1()、ReadPort2()、

WritePort2(),我在vb调用的过程中当调用WritePort1()和

WritePort2()时候可以在固件看到进入了相应的输入中断

但是在调用ReadPort1()和ReadPort2()的时候总是不能读出数据

并且提示我接收响应失败!!!如果我在固件程序中加端点观察

发现并不是进入的端点1或者2的输出中断,而是进入了控制端点

的输入中断!!!

    那么我有一个疑问,为为什么想端点写入的时候可以直接进入各

自端点的中断,而输出却不行,非要进入控制输入中断????

还有为什么会提示接收响应失败???请各位大下指点一二

或者由谁做个相关的程序不知道可否给小弟一份,因为不懂vc

所以只能用这些简单的函数来做。希望能够得到大家的帮助!!!




中断
        





enio250
驱动牛犊
驱动牛犊
  • 注册日期2004-04-27
  • 最后登录2005-05-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-22 17:40
不知你的问题解决了没有,我也碰到和你一样的问题,能否指点一二
jrmforever
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2010-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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);
}
}


上位机要先写就可连续读了!!



上面是论坛里面一个人的回答,我市了,好用的
jrmforever
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2010-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-22 22:27
多翻翻旧贴很重要哦!!
jmdong@si-en.co
驱动牛犊
驱动牛犊
  • 注册日期2007-10-24
  • 最后登录2007-11-13
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-11-02 15:06
原来多年以前大家就已经把D12研究透了呀,我07年才来弄,而且还没有成功,惭愧呀
实践、学习
游客

返回顶部