我做的是usb转串口的主机端(windows)驱动,设备端是linux,在linnux主机上可以正常的读写,可是到了用我的windows驱动读写设备的时候,只能向设备发送数据,但是无法读回设备的数据,我在驱动中断住看了一下,发现是在发下去读urb以后,一直在等待,(kewaitf...
全文
回复(4) 2004-11-09 20:08 来自版块 - USB驱动开发
表情
ctxezif(status ==STATUS_PENDING) { status = KeWaitForSingleObject(&Event,Executive,KernelMode,FALSE,pTimeout);//这里一直返回超时,如果我一直等的话,程序就死了,sof...(2004-12-19 11:05)
xiaorain谢谢大侠的回答,可是我的第一个问题是主机无法读回来数据。 我的第二个问题解决了,原因是我在应用程序关闭的时候把所有的pipes都给abort掉了,结果导致了写不下去前64各字节。 可是第一个问题,就是读不回来的问题,还是没有解决,现在发现一直在等待,并且我要打印urb的执行状...(2004-11-12 12:36)
ctxez我的一点经验: 你的第一个问题是终端接收不到数据,一个容易犯的错误是没有 设置终端的COM口参数,如传输速率,校验位,起始位等。这样终端接受不到数据,当然只有等待。 第二个容易犯的错误是主机与终端的传输速率设置不匹配,USB断口的传输速率快,串口的传输速率慢...(2004-11-10 17:22)
xiaorain向设备写数据的时候,我用bus hound看了一下,发现第一个urb被cancel掉了,这可能导致了写的时候总是少前64个字节,可是我没有设置cancel啊,可能是什么原因呢?(2004-11-10 09:17)

返回顶部