找回密码
 立即注册
查看: 60|回复: 3

AI8H2K12U USB键盘以及HID通讯疑问

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-03-21 14:26:05
已绑定手机

2

主题

1

回帖

28

积分

新手上路

积分
28
发表于 2026-3-9 09:58:04 | 显示全部楼层 |阅读模式
我现在需要一个USBkeybord传输字符,同时也需要通过HID控制通讯用于参数配置。
   基于62-基于HID协议的USB键盘范例  和 60-HID(Human Interface Device)协议范例  我想在HIDREPORTDESC的描述放在一起。  然后增加0x85 id用于区分不用的数据。  第一步:  在 62-基于HID协议的USB键盘范例 里面添加 0x85 0x02 REPORT_ID 为0x02 ,插入电脑之后,直接无法识别设备。


   疑问点: 我这个思路是否可以? 是否有demo,或者怎么样的解决思路。

// 具体描述如下:



char code HIDREPORTDESC[96] = // 65+2+27+2
{
    0x05,0x01,              //USAGE_PAGE(Generic Desktop);
    0x09,0x06,              //USAGE(Keyboard);
    0xa1,0x01,              //COLLECTION(Application);
    0x85,0x02,              //  REPORT_ID 0x0A;
    0x05,0x07,              //  USAGE_PAGE(Keyboard);
    0x19,0xe0,              //  USAGE_MINIMUM(224);
    0x29,0xe7,              //  USAGE_MAXIMUM(255);
    0x15,0x00,              //  LOGICAL_MINIMUM(0);
    0x25,0x01,              //  LOGICAL_MAXIMUM(1);
    0x75,0x01,              //  REPORT_SIZE(1);
    0x95,0x08,              //  REPORT_COUNT(8);
    0x81,0x02,              //  INPUT(Data,Variable,Absolute);
   
    0x75,0x08,              //  REPORT_SIZE(8);
    0x95,0x01,              //  REPORT_COUNT(1);
    0x81,0x01,              //  INPUT(Constant);
   
    0x19,0x00,              //  USAGE_MINIMUM(0);
    0x29,0x65,              //  USAGE_MAXIMUM(101);
    0x15,0x00,              //  LOGICAL_MINIMUM(0);
    0x25,0x65,              //  LOGICAL_MAXIMUM(101);
    0x75,0x08,              //  REPORT_SIZE(8);
    0x95,0x06,              //  REPORT_COUNT(6);
    0x81,0x00,              //  INPUT(Data,Array);
   
    0x05,0x08,              //  USAGE_PAGE(LEDs);
    0x19,0x01,              //  USAGE_MINIMUM(1);
    0x29,0x03,              //  USAGE_MAXIMUM(3);
    0x15,0x00,              //  LOGICAL_MINIMUM(0);
    0x25,0x01,              //  LOGICAL_MAXIMUM(1);
    0x75,0x01,              //  REPORT_SIZE(1);
    0x95,0x03,              //  REPORT_COUNT(3);
    0x91,0x02,              //  OUTPUT(Data,Variable,Absolute);
   
    0x75,0x05,              //  REPORT_SIZE(5);
    0x95,0x01,              //  REPORT_COUNT(1);
    0x91,0x01,              //  OUTPUT(Constant);
   
    0xc0,                   //END_COLLECTION;
#if 0

    0x05,0x0c,              //USAGE_PAGE(Consumer);
    0x09,0x01,              //USAGE(Consumer Control);
    0xa1,0x01,              //COLLECTION(Application);
    0x85,0x01, // CONSUMER_REPORT_ID 0x01
    0x15,0x00,              //  LOGICAL_MINIMUM(0);
    0x25,0xff,              //  LOGICAL_MAXIMUM(255);
    0x75,0x08,              //  REPORT_SIZE(8);
    0x95,0x40,              //  REPORT_COUNT(64);
    0x09,0x01,              //  USAGE(Consumer Control);
    0xb1,0x02,              //  FEATURE(Data,Variable);
    0x09,0x01,              //  USAGE(Consumer Control);
    0x81,0x02,              //  INPUT(Data,Variable);
    0x09,0x01,              //  USAGE(Consumer Control);
    0x91,0x02,              //  OUTPUT(Data,Variable);
    0xc0,                   //END_COLLECTION;
#endif
};


回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:724
  • 最近打卡:2026-03-18 07:56:47
已绑定手机

97

主题

7244

回帖

1万

积分

超级版主

积分
13791
发表于 2026-3-9 10:03:31 | 显示全部楼层

描述符对格式要求极其严格,错一个字节甚至一个位都无法正常工作
而且复合设备需要IAD描述符,可以看下这个:
https://www.stcaimcu.com/thread-4080-1-1.html
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-03-21 14:26:05
已绑定手机

2

主题

1

回帖

28

积分

新手上路

积分
28
发表于 2026-3-9 10:35:43 | 显示全部楼层
Debu*** 发表于 2026-3-9 10:03
描述符对格式要求极其严格,错一个字节甚至一个位都无法正常工作
而且复合设备需要IAD描述符,可以看下这 ...

这个demo是STC32G的, 我在AI8H里面也是可以同样使用的,主要参考USB的描述部分对吧.

点评

是的,可以参考这个描述符  详情 回复 发表于 2026-3-9 22:57
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:724
  • 最近打卡:2026-03-18 07:56:47
已绑定手机

97

主题

7244

回帖

1万

积分

超级版主

积分
13791
发表于 2026-3-9 22:57:48 | 显示全部楼层
lhkb*** 发表于 2026-3-9 10:35
这个demo是STC32G的, 我在AI8H里面也是可以同样使用的,主要参考USB的描述部分对吧. ...

是的,可以参考这个描述符
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-22 03:28 , Processed in 0.142168 second(s), 60 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表