HID设备发送消息

本文介绍了USB HID设备驱动的基本流程,包括分配usb_driver、设置、注册,重点解析了id_table的匹配规则,如USB_INTERFACE_INFO和USB_DEVICE。当设备接入时,驱动的probe函数被调用,该函数中涉及file_operation的分配、主设备号分配及设备节点的创建。
摘要由CSDN通过智能技术生成

基本结构如下:

1.分配usb_driver

2.设置

3.注册(usb_register())

/* 1. 分配/设置usb_driver */
static struct usb_driver myusb_driver = {
	.name		= "usbmouse_as_key_",
	.probe		= myusb_probe,
	.disconnect	= myusub_disconnect,
	.id_table	= myusb_id_table,
};


static int myusb_init(void)
{
	/* 2.usb 注册 */
	usb_register(&myusb_driver);
	return 0;
}
static struct usb_device_id myusb_id_table[] = {
	{ USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID, 0,0) },
	//{USB_DEVICE(0x1234,0x5678)},
	{ }	/* Terminating entry */
};

注册完以后,当usb总线中出现id_table支持的设备时,执行probe函数。

关于id_table:

USB_INTERFACE_INFO(bInterfaceClass,bInterfaceSubClass,bInterfaceProtocol)//匹配接口描述符

USB_DEVICE(idVendor,idProduct)//匹配设备描述符中的VID,PID

........

要根据驱动程序所支持的设备选择。

 

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值