海思Hi3516DV300配置hid键盘和鼠标复合设备

海思Hi3516DV300配置hid键盘和鼠标复合设备

配置脚本config.sh:

#!/bin/sh
mount -t configfs none /sys/kernel/config/
cd /sys/kernel/config/usb_gadget/
mkdir my_keyboard
cd my_keyboard

echo "0x01" > bDeviceProtocol
echo "0x02" > bDeviceSubClass
echo "0xEF" > bDeviceClass
echo 0x0419 > bcdDevice
echo 0x0200 > bcdUSB
echo 0x12d1 > idVendor
echo 0x4321 > idProduct
mkdir strings/0x409
echo MyCompany > strings/0x409/manufacturer
echo MyProduct > strings/0x409/product
echo 123456789 > strings/0x409/serialnumber

mkdir functions/hid.usb0
mkdir functions/hid.usb1

#mouse
cd functions/hid.usb0
echo 1 > protocol
echo 4 > report_length
echo 1 > subclass
echo -ne \\x5\\x1\\x9\\x2\\xa1\\x1\\x9\\x1\\xa1\\x0\\x5\\x9\\x19\\x1\\x29\\x3\\x15\\x0\\x25\\x1\\x95\\x3\\x75\\x1\\x81\\x2\\x95\\x1\\x75\\x5\\x81\\x3\\x5\\x1\\x9\\x30\\x9\\x31\\x9\\x38\\x15\\x81\\x25\\x7f\\x75\\x8\\x95\\x3\\x81\\x6\\xc0\\xc0 > report_desc
cd ../../

#keyboard
cd functions/hid.usb1
echo 2 > protocol
echo 8 > report_length
echo 1 > subclass
echo -ne \\x5\\x1\\x9\\x6\\xa1\\x1\\x5\\x7\\x19\\xe0\\x29\\xe7\\x15\\x0\\x25\\x1\\x75\\x1\\x95\\x8\\x81\\x2\\x95\\x1\\x75\\x8\\x81\\x3\\x95\\x5\\x75\\x1\\x5\\x8\\x19\\x1\\x29\\x5\\x91\\x2\\x95\\x1\\x75\\x3\\x91\\x3\\x95\\x6\\x75\\x8\\x15\\x0\\x25\\xFF\\x5\\x7\\x19\\x0\\x29\\x65\\x81\\x0\\xc0 > report_desc
cd ../../

ln -s functions/hid.usb0/ configs/c.1/
ln -s functions/hid.usb1/ configs/c.1/

ls /sys/class/udc > UDC

键盘部分测试代码,运行程序,电脑端会模拟打出’1’字符:

void main(){
	printf("write key press\n");
	char keyword_1[8] = {0,0,0x59,0,0,0,0,0};
	char keyword_bounce[8] = {0,0,0,0,0,0,0,0};
	int fd = 0, ret = 0;
    fd = open("/dev/hidg1", O_RDWR);
    if(fd <= 0)
    	printf("fd keyboard device open failed!\n");
    
    ret = write(fd, keyword_1, 8);
    if(ret <= 0)
    	printf("write keyword_1 failed\n");

	ret = write(fd, keyword_bounce, 8);
    if(ret <= 0)
    	printf("write keyword_bounce failed\n");
    	
    close(fd);
}

完成!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值