zoukankan      html  css  js  c++  java
  • HID Boot device.

    整理这篇文章的目的:

    客户会有用到遥控器部分(遥控器操作flow:当按下某个键时,MCU会透过UR送command给TP,TP吃到后再透过微软标准的keyboard上报)

    要求:在BIOS设定阶段,遥控器也要能正常操作.

    接口描述符中bInterfaceSubClass的值为0/1,为1表示HID设备描述符是一个Boot device.

    意思是BIOS启动时就能识别并使用你的设别,且只有标准鼠标或键盘类设备才能成为Boot device,为0则只有在操作系统启动后才能识别并使用你的HID设备.

    keyboard_interface_descriptor =
    {  
       0x09,                               // bLength                  长度9个,不可变
       0x04,                               // bDescriptorType      接口描述符
       0x00,                               // bInterfaceNumber    接口0  (接口从0开始,键盘定义0,鼠标定义1)
       0x00,                               // bAlternateSetting      接口索引值
       0x01,                               // bNumEndpoints       端点个数1(端点0不可用,比如EP1)
       0x03,                               // bInterfaceClass       (3 = HID)
       0x01,                               // bInterfaceSubClass   接口子类型:01为Boot Device,键鼠在BIOS下就启动
       0x01,                               // bInterfaceProcotol       接口协议:00--None  01--Keyboard  02--Mouse
       0x00                                // iInterface                    描述该接口的字符串索引
    };

    mouse_interface_descriptor =
    {  
       0x09,                               // bLength            长度9个,不可变
       0x04,                               // bDescriptorType        接口描述符
       0x01,                               // bInterfaceNumber      接口1   不同接口
       0x00,                               // bAlternateSetting       接口索引值
       0x01,                               // bNumEndpoints         端点个数1(端点0不可用,比如EP2)
       0x03,                               // bInterfaceClass          (3 = HID)
       0x01,                               // bInterfaceSubClass    接口子类型:01为Boot Device,键鼠在BIOS下就启动
       0x02,                               // bInterfaceProcotol      接口协议:00--None  01--Keyboard  02--Mouse
       0x00                                // iInterface                   描述该接口的字符串索引
    };

    Multi-touch.

    Elan_interface_descriptor = 

    {

      0x09,

      0x04,

      0x00,

      0x00,

      0x02,

      0x03,

      0x00,

      0x00,

      0x00,

    }

    ILI_interface0_descriptor = 

    { 

      0x09,               
      0x00,                 
      0x00,                  
      0x01,              
      0x03,                
      0x00,               
      0x00,               
      0x00,               

    }

    ILI_interface1_descriptor = 

    { 

      0x09, 
      0x04, 
      0x01,
      0x00, 
      0x01, 
      0x03,
      0x00,
      0x00,
      0x00, 

    }

  • 相关阅读:
    97. 交错字符串-7月18日
    如何判断一个区块链项目的好坏?
    不知道这10点,千万别用SaaS
    数字人民币应用的五大猜想!你最关心哪个?
    什么是人工智能核心?这2个功能上线
    大数据的七大核心具体价值
    机器学习操作正在兴起
    每个大数据架构师都需要的6个基本技能
    数据之美:可视化会给你意想不到的答案!
    如何采用人工智能创建自动化运营的数据中心
  • 原文地址:https://www.cnblogs.com/AlwaysOnLines/p/5085211.html
Copyright © 2011-2022 走看看