如何正确读取usb设备数据
发布网友
发布时间:2022-04-24 18:49
我来回答
共2个回答
热心网友
时间:2023-11-03 17:34
是不是你读取的通道配错了?譬如你想在EP1上收发数据,却配成了EP2,而事实上EP1的MPS是64,EP2的MPS是512?
把usb_bulk_msg的最后一个参数Timeout值设的大一点试一下,另外提醒下,usb_bulk_msg是阻塞的,也就是说你要读一定长度的数据,只有底层完全读到这些数据或者超时才会返回,如果在超时时间内设备未发送完全部的数据,那么此时返回err值,最简单的办法是加大Timeout值,最标准的做法是用usb_submit_urb异步方式提交URB包,效率比较高,Linux下的USB分层机制作的比较好,你可以看一下drivers/usb/serial下面就是最简单的主机侧串口驱动,里面基本上用的都是异步方式,看你帮定的应用是哪个应用Class对应看usb下面的代码
热心网友
时间:2023-11-03 17:34
是不是你读取的通道配错了?譬如你想在EP1上收发数据,却配成了EP2,而事实上EP1的MPS是64,EP2的MPS是512?
把usb_bulk_msg的最后一个参数Timeout值设的大一点试一下,另外提醒下,usb_bulk_msg是阻塞的,也就是说你要读一定长度的数据,只有底层完全读到这些数据或者超时才会返回,如果在超时时间内设备未发送完全部的数据,那么此时返回err值,最简单的办法是加大Timeout值,最标准的做法是用usb_submit_urb异步方式提交URB包,效率比较高,Linux下的USB分层机制作的比较好,你可以看一下drivers/usb/serial下面就是最简单的主机侧串口驱动,里面基本上用的都是异步方式,看你帮定的应用是哪个应用Class对应看usb下面的代码
热心网友
时间:2023-11-03 17:35
选中USB鼠标后在Bus hound的Capture项显示
Device Phase data Description Cmd.Phase.Ofs(rep)
25.2 DI 02 00 00 55 55 55 ...UUU 211.1.0(10)
------解决方案--------------------------------------------------------对于鼠标而言,数据无非是两种:1、击键信息2、鼠标位置
不管是usb鼠标还是ps2鼠标
建个对话框响应各种鼠标消息即可
------解决方案--------------------------------------------------------可以考虑鼠标过滤驱动
------解决方案--------------------------------------------------------有一个驱动或者程序已经打开设备,并且不许共享读取数据。
热心网友
时间:2023-11-03 17:34
是不是你读取的通道配错了?譬如你想在EP1上收发数据,却配成了EP2,而事实上EP1的MPS是64,EP2的MPS是512?
把usb_bulk_msg的最后一个参数Timeout值设的大一点试一下,另外提醒下,usb_bulk_msg是阻塞的,也就是说你要读一定长度的数据,只有底层完全读到这些数据或者超时才会返回,如果在超时时间内设备未发送完全部的数据,那么此时返回err值,最简单的办法是加大Timeout值,最标准的做法是用usb_submit_urb异步方式提交URB包,效率比较高,Linux下的USB分层机制作的比较好,你可以看一下drivers/usb/serial下面就是最简单的主机侧串口驱动,里面基本上用的都是异步方式,看你帮定的应用是哪个应用Class对应看usb下面的代码
热心网友
时间:2023-11-03 17:35
选中USB鼠标后在Bus hound的Capture项显示
Device Phase data Description Cmd.Phase.Ofs(rep)
25.2 DI 02 00 00 55 55 55 ...UUU 211.1.0(10)
------解决方案--------------------------------------------------------对于鼠标而言,数据无非是两种:1、击键信息2、鼠标位置
不管是usb鼠标还是ps2鼠标
建个对话框响应各种鼠标消息即可
------解决方案--------------------------------------------------------可以考虑鼠标过滤驱动
------解决方案--------------------------------------------------------有一个驱动或者程序已经打开设备,并且不许共享读取数据。
热心网友
时间:2023-11-03 17:34
是不是你读取的通道配错了?譬如你想在EP1上收发数据,却配成了EP2,而事实上EP1的MPS是64,EP2的MPS是512?
把usb_bulk_msg的最后一个参数Timeout值设的大一点试一下,另外提醒下,usb_bulk_msg是阻塞的,也就是说你要读一定长度的数据,只有底层完全读到这些数据或者超时才会返回,如果在超时时间内设备未发送完全部的数据,那么此时返回err值,最简单的办法是加大Timeout值,最标准的做法是用usb_submit_urb异步方式提交URB包,效率比较高,Linux下的USB分层机制作的比较好,你可以看一下drivers/usb/serial下面就是最简单的主机侧串口驱动,里面基本上用的都是异步方式,看你帮定的应用是哪个应用Class对应看usb下面的代码
热心网友
时间:2023-11-03 17:35
选中USB鼠标后在Bus hound的Capture项显示
Device Phase data Description Cmd.Phase.Ofs(rep)
25.2 DI 02 00 00 55 55 55 ...UUU 211.1.0(10)
------解决方案--------------------------------------------------------对于鼠标而言,数据无非是两种:1、击键信息2、鼠标位置
不管是usb鼠标还是ps2鼠标
建个对话框响应各种鼠标消息即可
------解决方案--------------------------------------------------------可以考虑鼠标过滤驱动
------解决方案--------------------------------------------------------有一个驱动或者程序已经打开设备,并且不许共享读取数据。
热心网友
时间:2023-11-03 17:35
选中USB鼠标后在Bus hound的Capture项显示
Device Phase data Description Cmd.Phase.Ofs(rep)
25.2 DI 02 00 00 55 55 55 ...UUU 211.1.0(10)
------解决方案--------------------------------------------------------对于鼠标而言,数据无非是两种:1、击键信息2、鼠标位置
不管是usb鼠标还是ps2鼠标
建个对话框响应各种鼠标消息即可
------解决方案--------------------------------------------------------可以考虑鼠标过滤驱动
------解决方案--------------------------------------------------------有一个驱动或者程序已经打开设备,并且不许共享读取数据。
热心网友
时间:2023-11-03 17:34
是不是你读取的通道配错了?譬如你想在EP1上收发数据,却配成了EP2,而事实上EP1的MPS是64,EP2的MPS是512?
把usb_bulk_msg的最后一个参数Timeout值设的大一点试一下,另外提醒下,usb_bulk_msg是阻塞的,也就是说你要读一定长度的数据,只有底层完全读到这些数据或者超时才会返回,如果在超时时间内设备未发送完全部的数据,那么此时返回err值,最简单的办法是加大Timeout值,最标准的做法是用usb_submit_urb异步方式提交URB包,效率比较高,Linux下的USB分层机制作的比较好,你可以看一下drivers/usb/serial下面就是最简单的主机侧串口驱动,里面基本上用的都是异步方式,看你帮定的应用是哪个应用Class对应看usb下面的代码
热心网友
时间:2023-11-03 17:35
选中USB鼠标后在Bus hound的Capture项显示
Device Phase data Description Cmd.Phase.Ofs(rep)
25.2 DI 02 00 00 55 55 55 ...UUU 211.1.0(10)
------解决方案--------------------------------------------------------对于鼠标而言,数据无非是两种:1、击键信息2、鼠标位置
不管是usb鼠标还是ps2鼠标
建个对话框响应各种鼠标消息即可
------解决方案--------------------------------------------------------可以考虑鼠标过滤驱动
------解决方案--------------------------------------------------------有一个驱动或者程序已经打开设备,并且不许共享读取数据。
热心网友
时间:2023-11-03 17:34
是不是你读取的通道配错了?譬如你想在EP1上收发数据,却配成了EP2,而事实上EP1的MPS是64,EP2的MPS是512?
把usb_bulk_msg的最后一个参数Timeout值设的大一点试一下,另外提醒下,usb_bulk_msg是阻塞的,也就是说你要读一定长度的数据,只有底层完全读到这些数据或者超时才会返回,如果在超时时间内设备未发送完全部的数据,那么此时返回err值,最简单的办法是加大Timeout值,最标准的做法是用usb_submit_urb异步方式提交URB包,效率比较高,Linux下的USB分层机制作的比较好,你可以看一下drivers/usb/serial下面就是最简单的主机侧串口驱动,里面基本上用的都是异步方式,看你帮定的应用是哪个应用Class对应看usb下面的代码
热心网友
时间:2023-11-03 17:35
选中USB鼠标后在Bus hound的Capture项显示
Device Phase data Description Cmd.Phase.Ofs(rep)
25.2 DI 02 00 00 55 55 55 ...UUU 211.1.0(10)
------解决方案--------------------------------------------------------对于鼠标而言,数据无非是两种:1、击键信息2、鼠标位置
不管是usb鼠标还是ps2鼠标
建个对话框响应各种鼠标消息即可
------解决方案--------------------------------------------------------可以考虑鼠标过滤驱动
------解决方案--------------------------------------------------------有一个驱动或者程序已经打开设备,并且不许共享读取数据。