打印
[USB编程]

求教如何及时判别读取HID设备有数据传入,只能循环ReadFile吗?

[复制链接]
4407|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sxslyy|  楼主 | 2013-11-27 16:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.当下位机(HID设备)以很快的速度上传数据,上位机如何能很快及时的读取,有什么方法能保证不读丢数据。是循环ReadFile吗?有没有测试出现数据的方法,如某个函数或某种方法可以实现!
2.如只能循环ReadFile,一般下位机多少MS上传一次!才能基本确保数据不丢失呢!即最小的上传间隔是多少?

相关帖子

沙发
yang4469| | 2013-12-5 11:52 | 只看该作者
这么高的分居然无人问津
楼主可以参考下st的usb
https://bbs.21ic.com/forum.php?mod=viewthread&tid=583006

使用特权

评论回复
板凳
li880wert| | 2013-12-6 17:22 | 只看该作者
楼主会不开个线程,一直监测数据吗,你stm32 72M的速率有 上位机 双核 2G的速率快吗

使用特权

评论回复
地板
john_lee| | 2013-12-9 10:41 | 只看该作者
开工作线程以阻塞方式ReadFile,读到了数据可以发个消息通知主线程处理。

使用特权

评论回复
5
xinghun0813| | 2013-12-11 10:53 | 只看该作者
下位机多少毫秒传输一次数据,是下位机配置决定的。一般是毫秒级的,上位机开个线程去读肯定来的及的。

使用特权

评论回复
6
sxslyy|  楼主 | 2013-12-13 09:27 | 只看该作者
版主:阻塞方式会不会,可能引起线程阻死。我现在用的是异步方式!然后等超时!等5秒,大多时会读正常!但通讯过程中,总会有Readfile超时的情况!不定期的出现!下位机最多几十毫秒就上传数据了(从Bus Hound上看,DI 已经送上数据了,也就是说数据已放到了HID驱动的缓存区了)!!为什么上位机5秒还会读超时,是因为异步方式,Readfile是用I/O重叠,系统没能从缓冲区上及时读出数据吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

31

帖子

0

粉丝