为什么有时候hid usb通信原理writefile会timeout

function”这种错误从而导致无法正常使用,目前未找到相关原因关于设置重叠(FILE_FLAG_OVERLAPPED)操作的相关操作,也存在一些问题WaitForSingleObject()函数返回的值不正确,导致操作一直在不断循环(这裏可能是我操作的时候没有注意细节导致的)ReadFile最后一个参数需要有CreateEVent(NULL,TRUE,FALSE,NULL)(事件对象设置为人工重置)。
最后实在没有办法了于是就用了多线程嘚方式,对读写操作都是用线程处理用WaitForSingleObjiect()来监控,这样WriteFile和ReadFile操作都没有阻塞了但是在CancelHandle()的时候,CancelHandle会出现阻塞在别人的博客上看到对ReadFile调用线程使用CancelSynchronousIo()(取消读操作)就可以了,试了下该方法是可以正常运行的。

关于CreateFile打开设备时需要设置的参数在MSDN中都有详细描述

}

刚解决了写不进去数据的问题現在发现连续往此HID设备里写入读出若干条数据后,用readfile读出的数据是上一条指令的buff每次都清空的,或者执行好几次rwitefile、readfile才能返回当前指令应該返回的数据关键代码如下:

}

刚解决了写不进去数据的问题現在发现连续往此HID设备里写入读出若干条数据后,用readfile读出的数据是上一条指令的buff每次都清空的,或者执行好几次rwitefile、readfile才能返回当前指令应該返回的数据关键代码如下:

}

我要回帖

更多关于 usb通信原理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信