关于USB通信的问题

fanka12 2010-07-16 05:52:21
我用VC写通过USB与硬件通信的程序,有没有函数可以知道USB缓存里面有数据过来?
就是说程序察觉USB缓存里面有数据就去ReadFile,而不是像我现在这样设置一个定时器定时的去读。
...全文
88 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
heaijun 2010-07-27
  • 打赏
  • 举报
回复
读usb的数据还是单独开一个线程比较好
heaijun 2010-07-27
  • 打赏
  • 举报
回复
意楼上上的观点
drywell 2010-07-27
  • 打赏
  • 举报
回复
7楼说得不错,包括键盘在内,也是host不停的去查询,device只能等待host来获取数据。
marrco2005 2010-07-20
  • 打赏
  • 举报
回复
同意楼上的观点
用户 昵称 2010-07-20
  • 打赏
  • 举报
回复
usb设备是从设备,不会主动发送数据,得到令牌才有机会发送数据。

令牌是由主机控制的,主机发送读请求,设备收到令牌,数据就能上发了。

有的读请求由驱动层发出,比如大部分hid设备,有些则由应用程序发出。

-----要想得到设备的数据,必须是主机去读,不管是驱动层还是应用层。
fanka12 2010-07-20
  • 打赏
  • 举报
回复
所以,各位老大的意见是?
用户 昵称 2010-07-17
  • 打赏
  • 举报
回复
自动的本质就是死读。
wocow3 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 antheus 的回复:]

除了中断端点,其他的端点对于PC来说都是被动式的.所以,你的想法实现不了
只能像2楼说的那样
[/Quote]
中断传输也必须host主动去读device才返回数据。
interrupt transfer只是保证带宽,在设定的周期内host保证中断传输端点一定会通讯一次
而块传输是不被保证的
Antheus 2010-07-16
  • 打赏
  • 举报
回复
除了中断端点,其他的端点对于PC来说都是被动式的.所以,你的想法实现不了
只能像2楼说的那样
wocow3 2010-07-16
  • 打赏
  • 举报
回复
开线程阻塞式的去读数据
evanxgsh 2010-07-16
  • 打赏
  • 举报
回复
可以使用中断。

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧