在上一章分析完USB总线驱动程序后, 接下来开始写一个USB驱动: 本节目的: 将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键 参考/drivers/hid/usbhid/...urb使用usb_fill_bulk_urb() 针对控制型端点的urb使用usb_fill_control_urb() 针对等时型端点的urb 需要手动初始化。...,使用DMA缓冲区地址 ->4.5)使用usb_submit_urb()提交urb 3.3在鼠标中断函数中 1)判断缓存区数据是否改变,若改变则上传鼠标事件 2)使用usb_submit_urb()提交... #include #include #include #include...如下图,当我们插上USB鼠标时,可以看到该VID和PID,和电脑上的鼠标的参数一样 ?
在刚把电脑系统转为linux之后,一直觉得需要通过命令:sudo rmmod psmouse来完成禁用触摸板的操作实在是太不方便了,于是就想着用一个python脚本来完成该操作。...于是在网上找到了pyUSB这个python库,可以轻松的完成对usb设备的操作。...我的整个思路是这样的,首先开机启动一个python程序,不断运行,不停的检查usb设备中是否有usb鼠标的身影,如果有,那么执行上面的那个禁用触摸板的命令,如果没有,就启用触摸板。...关于判断插入usb鼠标的代码已经完成,关于usb设备的必备知识: USB设备分类 USB从设备的分类可以从USB设备接口描述符(Standard Interface Descriptor)对应的的...3-HID:人机交互设备,如键盘,鼠标等。6-image图象设备,如扫描仪,摄像头等,有时数码相 机也可归到这一类。7-打印机类。如单向,双向打印机等。8-mass storage海量存储类。
[ 0.513302] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 0.513303] usb usb1...Controller [ 0.513304] usb usb1: Manufacturer: Linux 3.10.0-327.el7.x86_64 xhci-hcd [ 0.513305...] usb usb1: SerialNumber: 0000:00:14.0 [ 0.518700] usb usb2: New USB device found, idVendor=1d6b,...0.518702] usb usb2: Product: xHCI Host Controller [ 0.518702] usb usb2: Manufacturer: Linux 3.10.0...] usb 1-4: New USB device found, idVendor=413c, idProduct=301a [ 1.040348] usb 1-4: New USB device
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...端点0,是设备的默认控制端点,在设备上电后就存在并可以使用,在Set Config之前所有的传输都是通过端点0传输的。
USB 鼠标摆渡作为一种新兴的攻击方式,给信息安全带来了严重的挑战。...二、USB 鼠标摆渡的原理(一)特制 USB 鼠标的构造这种特制的 USB 鼠标在外观上与普通鼠标无异,但内部集成了存储芯片和特定的控制电路。...五、案例分析(一)某科技公司机密泄露一家科技公司的研发人员在使用电脑时接入了一个特制的 USB 鼠标,导致公司正在研发的新产品技术文档被窃取,竞争对手提前推出类似产品,使该公司遭受巨大市场损失。...(二)政府部门数据失窃某政府部门的工作人员电脑被特制 USB 鼠标入侵,部分敏感的政策文件和统计数据被拷贝,对政策制定和公共管理造成了不利影响。...(三)应急响应机制一旦发现 USB 鼠标摆渡事件,立即启动应急响应流程,包括隔离受感染设备、调查事件源头、恢复数据等。
这次给大家演示一下如何用STM32CUBE的配置,自动生成一个USB鼠标的过程。这里多说一句,USB是一套比较复杂的协议,单靠一两个例程是不可能完全理解的。...VID和PID分别代表厂商(Vender )编号和产品(PID)编号,VID不能随便用,要花钱向USB协会申请,所以这里仅供学习使用。PID还好,由厂商自己定义。...其实,你可以理解为,这是官方提供给我们的一个鼠标例程。这里简单说下USB设备上电的过程: 1、设备插入后,USB主机自动对设备进行复位,使设备地址为零。...USB主机继续提问,获取其它描述符。 7、USB设备,在向主机回复配置集合的时候,表明自己的身份:你好,我是个鼠标! 也就是说,在配置集合中,有信息说明这个设备是鼠标,我们看下。...还是那句话,USB协议比较复杂,只靠一两篇文章是学不会的。例程我放到了后台,回复关键词:USB鼠标例程,即可获取下载链接。 打完收工,睡觉去了! ?
C语言Windows程序设计 -> 第十一天 -> 使用鼠标 鼠标的使用同样是通过获取Windows鼠标消息来获取用户当前的鼠标状态的。...一、鼠标的介绍 鼠标是计算机的输入设备之一, 在图形化的操作系统上, 鼠标的使用使一些复杂的操作变得简单, 随着科技的进步, 鼠标的种类也越来越多, 按接口类型可分为串行鼠标、PS/2鼠标、...总线鼠标、USB鼠标(多为光电鼠标)四种。...鼠标的样式 Windows系统为鼠标提供了几种默认的鼠标样式, 如: 箭头、沙漏、十字瞄准等, 在以前学习的过程中实际上我们已经接触了使用默认的鼠标样式, 回忆这行代码:...二、使用鼠标的简单示例 1>. 示例一: 获取鼠标指针位置 在这个示例中演示如何获取鼠标的位置, 先说下相关的消息标识符以及函数。
1.3 适用范围 表 1-1: 适用产品列表 内核版本 驱动文件 Linux-4.9 drivers/usb/* Linux-5.4 drivers/usb/* 2 模块介绍 2.1 模块功能介绍...做主机时,能连接 U 盘、USB 鼠标等 USB 设备;做从设备时,具有 ADB 调试等从设备功能。...USB 总线采用树形结构,在一条总线上只能有唯一的主机设备。Linux 内核从主机和设备两个角度观察 USB 总线结构。...图 2-11: linux-4.x usb gadget 配置选择 2.6.2 linux-4.x/linux-5.4 USB Gadget 配置流程 Linux-4.x/Linux-5.4 使用 configfs...2.7 端点配置 在 Gadget 配置使用过程中,可能出现端点的默认配置方式无法满足需求的情况,故需对端点进行修改满足需求。可参考现有的端点进行修改。
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。...2.1 pipe 使用这些接口函数的主要目的是传输数据,传输数据的对象是 USB 设备里的某个 endpoint,这被称为 pipe: /* Create various pipes... */ #define...timeout); 2.3 异步传输函数 使用 URB 进行传输时,它是异步方式:需要先分配、构造、提交一个 URB("usb request block"),当传输完成后,它的回调函数被调用。...:USB 控制器先把数据传到 DMA Buffer,函数内部在把 DMA Buffer 的数据复制到一般 buffer 中间增加了一次数据的拷贝,效率低 我们可以直接使用 DMA Buffer,函数原型如下
一.背景: arm linux的内核版本是3.13.0 二.准备工作 添加alsa驱动到内核中,也就是在编译内核的时候加入以下选项: ?...alsa-lib 3.2交叉编译alsa-utils 四.将三编译好的库及工具都拷贝至arm开发板(笔者通常直接将编译好的都压缩好之后再复制到开发板进行解压,以避免直接复制造成软链接无法复制的情况) 五.使用...fat32格式的存储设备的时候,注意fat32是不支持软链接的,此时需要直接复制一个aplay并将名称改为arecord: cp aplay arecord 总结 以上所述是小编给大家介绍的arm linux...利用alsa驱动并使用usb音频设备 ,希望对大家有所帮助!
端点在linux内核中使用结构 struct usb_host_endpoint 来描述,它所包含的真实端点信息在另一个结构中:struct usb_endpoint_descriptor(端点描述符,...", /*鼠标的名称-不是匹配使用*/ .probe = usb_mouse_probe, /*资源探测函数-匹配成功调用*/ .disconnect = usb_mouse_disconnect...,/*当鼠标断开连接调用*/ .id_table = usb_mouse_id_table, /*匹配驱动使用*/ }; 4.4 获取当前设备信息 struct usb_device *interface_to_usbdev...鼠标驱动(中断传输方式) 5.1 USB驱动注册框架代码 #include #include #include ...#include /* 本程序为USB鼠标驱动程序,要安装本驱动,需要先将内核自带的USB驱动程序卸载掉 */ //定义USB的IDTAB 24ae:2002 static
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下..."level": 1, "manufacturer": "QEMU", "port": 0, "prodid": "0001", "product": "QEMU USB...: 产品 serial: USB 硬件设备序列号 ,例如 0000:00:01.2 定位方法# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct...设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice By...USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
一、前言 libuvc是一个开源的库,用于在Linux和其他操作系统上与USB视频设备进行交互。提供了一组函数和接口,使开发人员可以轻松地访问和控制USB摄像头。...通过使用libuvc库,开发人员可以从USB摄像头中获取视频流数据,并对摄像头的设置和属性进行控制,例如分辨率、帧速率、曝光等。...libuvc库提供了针对各种常见操作系统的API,包括Linux、Windows、macOS、Android等。使用USB协议与摄像头通信,并处理底层协议细节,简化了开发人员的工作。...许多应用程序和项目使用libuvc库来构建基于USB摄像头的应用程序,如视频监控、机器视觉、视频采集等。它提供了一个方便且跨平台的解决方案,使开发人员能够轻松地利用USB摄像头的功能。...libuvc仓库地址在这里:https://github.com/libuvc/libuvc 在Linux下的安装也是非常的简单。
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Synaptics\SynT...
Linux3.11版本引入了基于configfs的usb gadget configfs。...2.使用方法 下面的脚本通过usb gadget configfs配置uac2.0。在使用之前,内核需要开启UAC2.0相关配置。...子系统中又可分为组,使用config_group描述,组内又有成员,使用config_item描述。...初始化复合设备驱动数据结构usb_composite_driver,使用usb gadget configfs时,使用者可以直接在用户空间绑定function驱动,不需要bind和unbind函数,因此...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(
本文告诉大家如何在 dot net core 使用 usb 首先需要打开 Nuget 安装 CoreCompat.LibUsbDotNet ,这是一个usb连接的库。...下才会触发 我尝试插入一个 hid 设备,结果没有通知,估计只有在 Linux 才可以。...如果不知道 pid vid 需要拿到所有插入的 usb 请使用下面代码 foreach (UsbRegistry temp in UsbDevice.AllWinUsbDevices...) { } 如果知道了 pid 和 vid 拿到 usb 就可以使用下面代码 var usb =...,如果你测试的 usb 的第一个端口是可以读写,就可以使用下面方法 // Select config #1 wholeUsbDevice.SetConfiguration
一、环境介绍 操作系统: ubuntu18.04 64位 二、usbmon使用方法 2.1 功能介绍 usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具。...当前使用的是ubuntu18.04,驱动模块的位置:/lib/modules/5.3.0-40-generic/kernel/drivers/usb/mon/usbmon.ko 如果不确定当前内核的版本.../linux_c/usb_dev_ubuntu# 如果提示忙,表示当前系统已经默认挂载。...2.4 查看usbmon可以识别到的USB总线编号 root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# ls /sys/kernel...root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# cat /sys/kernel/debug/usb/usbmon/3u ffff9bbbaf235b00
MDK的RL-USB使用起来非常方便,使用RTE的USBD_Config_MSC.h配置不同Device中对应的参数,这个头文件打开如下: 创建多个USB_DEVICE时上图中黑色框内的数字会依次递加...在 USB 设备中,端点是主机和设备之间进行通讯的基本单元。一个 USB 设备无论多复杂,有多少的接口,最终与主机进行通讯的都是端点。...配置设备和设置接口请求最终目标都是为了确定当前设备所用到的端点配置情况, 在USB总线上,通过设备地址和端点地址就能唯一确定一条数据的来源。
看来你们对USB兴趣一般,所以这次我把它放在次条。感兴趣的就看一眼,没兴趣的就算了。 前面两篇文章分别说了如何实现基于STM32的USB鼠标和基于STM32的USB键盘。...这篇文章,我们试着同时在一个USB设备上,实现USB的鼠标与键盘二合一。花一份的钱,实现两样东西,它不香吗? 这里要说一下,实现鼠标键盘二合一的功能,方法有多种,这里只说其中一种。...这样的话,对USB主机(也就是电脑)来说,它收到的数据,有可能是鼠标的数据,也有可能是键盘的数据。那,怎么区分?...向USB主机发送数据的时候,数组的第一个元素是报告ID,后面才是键盘数据或鼠标数据。实现前面两节的例程的时候,USB键盘我们定义了一个8元素的数组,USB鼠标我们定义了一个4元素的数组。...新建一个TXT文档,可以看到字母自动输出,同时鼠标左键每隔1秒被触发一下。 完整的工程源码,我上传到了网盘,公众号后台回复关键词:USB键盘鼠标二合一,即可获得下载链接。
领取专属 10元无门槛券
手把手带您无忧上云