你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32复合设备通信异常,求助

[复制链接]
renlei_bit 提问时间:2018-1-20 19:20 /
求助各位大大,我是用stm32做一个复合设备,声明了两个接口,一个HID标准键盘和一个自定义HID设备,但是在发送数据的时候,由于HID标准键盘帧是8个字节,如果自定义HID设备也发送8个字节是可以的,但是发送其他数目的字节,例如9个,16个,64个,都会导致HID标准键盘的数据帧异常,从而导致键盘功能异常,此时自定义HID设备发送的数据帧是正确的。
收藏 评论7 发布时间:2018-1-20 19:20

举报

7个回答
maxtch 回答时间:2018-1-20 19:59:40
你分别在两个不同的 Interface,两个不同的 Endpoint 上干活啊……我做 HID+CDC+MSC 的复合设备没有两个请求是一致的都没关系……

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

renlei_bit 回答时间:2018-1-20 20:17:20
maxtch 发表于 2018-1-20 19:59
你分别在两个不同的 Interface,两个不同的 Endpoint 上干活啊……我做 HID+CDC+MSC 的复合设备没有两个请 ...

对啊   按我自己的理解,我是两个interface各自定义了一个endpoint,然后用各自的endpoint往PC端发数,这样有问题吗   刚入行不太懂
maxtch 回答时间:2018-1-20 21:08:00
renlei_bit 发表于 2018-1-20 20:17
对啊   按我自己的理解,我是两个interface各自定义了一个endpoint,然后用各自的endpoint往PC端发数,这 ...

就是这个意思。设备描述符里面用 IAD 分隔成两个 Interface,各自定义 Endpoint,有两个单独的 Report Descriptor,各自独立工作。
七哥 回答时间:2018-1-20 22:52:21
先用HID Descriptor tool检查一下,描述符字段是否正确。复合设备,可以帧长度不同。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

renlei_bit 回答时间:2018-1-21 11:02:59
本帖最后由 renlei_bit 于 2018-1-21 11:22 编辑
toofree 发表于 2018-1-20 22:52
先用HID Descriptor tool检查一下,描述符字段是否正确。复合设备,可以帧长度不同。 ...

自定义HID设备的帧长度等于8个字节就没问题,现在是小于或者大于8个字节就影响键盘数据帧的发送。看描述符没问题啊
renlei_bit 回答时间:2018-1-21 11:24:24
maxtch 发表于 2018-1-20 21:08
就是这个意思。设备描述符里面用 IAD 分隔成两个 Interface,各自定义 Endpoint,有两个单独的 Report De ...

就是这么干的啊   不知道怎么会出现这个问题   两个接口分别发不同长度的数据帧应该没问题的才对
没事逛荡 回答时间:2018-1-21 18:57:56
用抓包工具看看键盘的数据帧是怎么个异常的情况。
正常来说,不同的设备走不同的通道,互不影响的。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版