github website: https://github.com/libusb/libusb
libusb examples https://github.com/libusb/libusb/tree/master/examples
libusb API https://libusb.sourceforge.io/api-1.0/index.html
libusb Modules https://libusb.sourceforge.io/api-1.0/modules.html
libusb synchronous device I/O 常用函数:libusb_control_transfer, libusb_bulk_transfer, libusb_interrupt_transfer
sudo apt update
sudo apt install libusb-1.0-0
sudo apt-get install libusb-1.0-0-dev
website: https://www.linuxfromscratch.org/blfs/view/svn/general/libusb.html
- 使用命令行工具lsusb,查看当前设备的通信端点的通信方式。lsusb -v后,在Endpoint中的Transfer Type可以看到,usb_data_transfer.c里写的是interrupt模式。
- 使用lsusb查看输出端点和输入端点,记录端点号。一般情况为,写设备为0x01,读设备为0x81。
- 查看输出缓冲区的大小,在写设备时会用到。
- listdevs.c 和 testlibusb.c 是官方的example, 代码专门挑出来方便学习,若要编译运行要下载libusb-1.0.24, 按照 libusb开发指南
- usb_data_tranfer.c 主要参考 linux下的用libusb读写自定义HID设备所写,编译用 gcc -o xx xx.c -lusb-1.0
- 运行要在terminal下,不能在vscode里,以免系统崩溃
libusb开发指南
libusb的使用教程和例子
linux下的用libusb读写自定义HID设备
linux下 libusb使用--打开usb设备进行通信
Android USB HID bulkTransfer()参数解析
Linux 下使用libusb 与USB-HID 设备通讯之控制传输