阅读:2132回复:10
hid设备 中断的问题
将endpoint 1 配置成中断 in 传输.我的程序在运行时(在debug环境下)每走一圈都有endpoint1 的in中断触发.
主机是不是每隔若干毫秒就给单片机发in包请求数据啊?能不能不让主机自动发in包,而由我的应用程序来作. 这是不是要改report描述符? 除了它我实在找不到什么地方可改的了. |
|
|
沙发#
发布于:2003-12-26 09:32
不要用中断传输。
|
|
板凳#
发布于:2003-12-27 10:28
设备是否加载成功?正常情况是加载后没有IN请求。除非主机软件发出这个请求。
|
|
地板#
发布于:2003-12-29 14:52
谢谢 zhuge36 ,设备加载正常可以读写数据。但是由于总是有终端1的中断触发,也就是说主机应用程序没读的时候,终端1的buffer里已经因终端1的中断而放入数据了。这样在主机应用程序读的时候读出的数总是随机的。我现在就是想知道这个中断是怎么产生的。能否让主机的应用程序触发这个中断。
|
|
|
地下室#
发布于:2003-12-29 15:59
你告诉主机你的端点1配置成中断传输了,主机当然要定时发IN来读取数据了!
|
|
5楼#
发布于:2003-12-30 08:30
谢谢wxy8030,但是我看书上说,这个in请求可以由驱动程序来发,也可以由主机应用程序来发。谁知道怎么不让驱动定时发这个in请求阿!!
|
|
|
6楼#
发布于:2003-12-30 08:52
你的固件程序是不是有问题?如果你没有新的数据,当主机要求IN时,发一个STALL就行了,那你也不会读到无效的数据了。
|
|
|
7楼#
发布于:2003-12-30 09:42
谢谢wxy8030,但是我看书上说,这个in请求可以由驱动程序来发,也可以由主机应用程序来发。谁知道怎么不让驱动定时发这个in请求阿!! 你要让驱动程序来控制传输,就不应该配置为中断传输啊! |
|
8楼#
发布于:2003-12-30 10:06
再次感谢给于我指导的朋友,我现在是希望当主机应用程序读数的时候才产生终端1的中断。由于usb设备不知道主机何时要求读数据,所以没有新数据就法stall还不够理想。也许我真的不该图省事用中断in传输吧 呵呵。
|
|
|
9楼#
发布于:2003-12-30 10:56
可以先通过端点1(或0)发一个你自己定义的请求(OUT),在接受到这个OUT中断后,往IN里写数据,,,然后主机发IN,,,不就可以了么?
|
|
10楼#
发布于:2003-12-30 15:21
现在看来只能这样了,呵呵。非常感谢你们得帮助。:)
|
|
|