Iceberg
驱动牛犊
驱动牛犊
  • 注册日期2001-08-29
  • 最后登录2013-07-15
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2132回复:10

hid设备 中断的问题

楼主#
更多 发布于:2003-12-26 09:03
将endpoint 1 配置成中断 in 传输.我的程序在运行时(在debug环境下)每走一圈都有endpoint1 的in中断触发.
主机是不是每隔若干毫秒就给单片机发in包请求数据啊?能不能不让主机自动发in包,而由我的应用程序来作.
这是不是要改report描述符? 除了它我实在找不到什么地方可改的了.
冰山一角
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-26 09:32
不要用中断传输。
zhuge36
驱动牛犊
驱动牛犊
  • 注册日期2003-07-18
  • 最后登录2010-10-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望31点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-27 10:28
设备是否加载成功?正常情况是加载后没有IN请求。除非主机软件发出这个请求。
Iceberg
驱动牛犊
驱动牛犊
  • 注册日期2001-08-29
  • 最后登录2013-07-15
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-29 14:52
谢谢 zhuge36 ,设备加载正常可以读写数据。但是由于总是有终端1的中断触发,也就是说主机应用程序没读的时候,终端1的buffer里已经因终端1的中断而放入数据了。这样在主机应用程序读的时候读出的数总是随机的。我现在就是想知道这个中断是怎么产生的。能否让主机的应用程序触发这个中断。
冰山一角
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-29 15:59
你告诉主机你的端点1配置成中断传输了,主机当然要定时发IN来读取数据了!
Iceberg
驱动牛犊
驱动牛犊
  • 注册日期2001-08-29
  • 最后登录2013-07-15
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-30 08:30
谢谢wxy8030,但是我看书上说,这个in请求可以由驱动程序来发,也可以由主机应用程序来发。谁知道怎么不让驱动定时发这个in请求阿!!
冰山一角
lejianz
驱动中牛
驱动中牛
  • 注册日期2003-03-05
  • 最后登录2023-11-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望145点
  • 贡献值0点
  • 好评度116点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2003-12-30 08:52
你的固件程序是不是有问题?如果你没有新的数据,当主机要求IN时,发一个STALL就行了,那你也不会读到无效的数据了。
一起交流,共同提高!
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-12-30 09:42
谢谢wxy8030,但是我看书上说,这个in请求可以由驱动程序来发,也可以由主机应用程序来发。谁知道怎么不让驱动定时发这个in请求阿!!


你要让驱动程序来控制传输,就不应该配置为中断传输啊!
Iceberg
驱动牛犊
驱动牛犊
  • 注册日期2001-08-29
  • 最后登录2013-07-15
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-30 10:06
再次感谢给于我指导的朋友,我现在是希望当主机应用程序读数的时候才产生终端1的中断。由于usb设备不知道主机何时要求读数据,所以没有新数据就法stall还不够理想。也许我真的不该图省事用中断in传输吧 呵呵。
冰山一角
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-12-30 10:56
可以先通过端点1(或0)发一个你自己定义的请求(OUT),在接受到这个OUT中断后,往IN里写数据,,,然后主机发IN,,,不就可以了么?
Iceberg
驱动牛犊
驱动牛犊
  • 注册日期2001-08-29
  • 最后登录2013-07-15
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-12-30 15:21
现在看来只能这样了,呵呵。非常感谢你们得帮助。:)
冰山一角
游客

返回顶部