找回密码
 立即注册
查看: 759|回复: 2

对《STC8H-USB在线升级》ISP源码中HID描述符的疑问

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-03 13:48:45
已绑定手机

27

主题

341

回帖

1695

积分

金牌会员

机长

积分
1695
发表于 2023-6-6 20:43:35 | 显示全部楼层 |阅读模式
https://www.stcai.com/Customer/FileDownloadVerifyPass?fileid=606705&type=img
  1. char code HIDREPORTDESC[27] =
  2. {
  3.     0x05,0x0c,              //USAGE_PAGE(Consumer);
  4.     0x09,0x01,              //USAGE(Consumer Control);
  5.     0xa1,0x01,              //COLLECTION(Application);
  6.     0x15,0x00,              //  LOGICAL_MINIMUM(0);
  7.     0x25,0xff,              //  LOGICAL_MAXIMUM(255);
  8.     0x75,0x08,              //  REPORT_SIZE(8);
  9.     0x95,0x40,              //  REPORT_COUNT(64);
  10.     0x09,0x01,              //  USAGE(Consumer Control);
  11.     0xb1,0x02,              //  FEATURE(Data,Variable);
  12.     0x09,0x01,              //  USAGE(Consumer Control);
  13.     0x81,0x02,              //  INPUT(Data,Variable);
  14.     0x09,0x01,              //  USAGE(Consumer Control);
  15.     0x91,0x02,              //  OUTPUT(Data,Variable);
  16.     0xc0,                   //END_COLLECTION;
  17. };
复制代码

对于0x81,0x02 // INPUT(Data,Variable);和0x91,0x02 // OUTPUT(Data,Variable); 的取值有点疑问,我查了资料Variable应该是固定长度的,但实际通信中USB数据的长度应该是不固定的,因此应该是Array才对啊,即这两项应该是0x81,0x00和0x91,0x00。
请大神帮忙看看,是我对Variable/Array理解有误,还是上位机程序里面做了填充?谢谢!
业余撸代码,专业开飞机
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-30 14:38:57

25

主题

977

回帖

3599

积分

超级版主

积分
3599
发表于 2023-6-7 09:16:47 | 显示全部楼层
首先,这个Demo的的每个数据包的大小是固定为64字节
如果你认真看代码就会发现,发送数据时如果每包数据量不足64字节,也会进行数据填充
其次、Report中用Varibable还是Array取决于上位机对数据的处理方式
我们这个Demo是通用HID,目的仅仅只是上位机和下位机相互进行数据传输,
无论是Varibable还是Array,只要能实现数据传输就达到目的了

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-03 13:48:45
已绑定手机

27

主题

341

回帖

1695

积分

金牌会员

机长

积分
1695
发表于 2023-6-7 10:00:28 | 显示全部楼层
zh*** 发表于 2023-6-7 09:16
首先,这个Demo的的每个数据包的大小是固定为64字节
如果你认真看代码就会发现,发送数据时如果每包数据量 ...

嗯,看到usb_IN()方法中固定写死了64了。
之前就觉得用Variable应该有填充,只是不是太十分确定,同时为了印证我的理解,所以就提了这个问题。

再次感谢大神的回答~~~
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 22:13 , Processed in 0.106595 second(s), 61 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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