jyl518-283289 发表于 2018-9-11 15:16:29

Custom Human Interface Device Class(HID)

本帖最后由 jyl518-283289 于 2018-9-11 15:25 编辑

CPU:       STM32F103VBT6      开发环境:STM32CubeMX
1、USB功能选择 Human Interface Device Class(HID),
其它配置默认,并且配置正常情况下,PC能够正确识别到USB设备。

2、若将USB功能选择Custom Human Interface Device Class(HID),
其它配置默认,并且配置正常情况下,重新生成MDK程序
PC不能正确识别USB设备,PC显示不能安装设备驱动,

设备管理器显示黄色感叹号USB设备
如下图:




我的USB配置均为默认情况下:
为什么Custom Human Interface Device Class(HID)不能被PC识别(难道STM32CubeMX生产就是这样的),
而                  Human Interface Device Class(HID)却可以被PC识别??
请大神指点一二!!

toofree 发表于 2018-9-11 15:54:46

本帖最后由 toofree 于 2018-9-11 15:55 编辑

没有谁规定HID设备就一定不需要驱动呀!
只有HID鼠标、键盘、游戏手柄,等是免驱的,可以自动安装驱动。

能在人体学这类中出现未知设备,已经表明它就是HID设备了。

jyl518-283289 发表于 2018-9-11 16:13:47

toofree 发表于 2018-9-11 15:54
没有谁规定HID设备就一定不需要驱动呀!
只有HID鼠标、键盘、游戏手柄,等是免驱的,可以自动安装驱动。



问题是现在STM32发不出数据

toofree 发表于 2018-9-11 17:15:38

jyl518-283289 发表于 2018-9-11 16:13
问题是现在STM32发不出数据
发不出数据也正常呀,发数据是要用户自己写的。配合自己的驱动及应用程序来操作的。

默认只会给你生成USB设备连接时的枚举信息,并且上电时可以发出枚举信息,与上位机交互后识别为HID设备。

我是熊猫大仙 发表于 2018-9-11 18:57:09

用CubeMX就跟用LabVIEW有点类似,封装隐藏了很多底层的细节,让大家产生一种错觉,串口啊,USB通讯啊这些底层的细节都不需要去学习了解了,只需要点几下鼠标就可以了。

几年前我的第一个用STM32做的项目就是用CubeMX生成的VCP接口,结果长时间通讯后会突然无法通讯,然后USB无法通讯了。当时用的是直接用树莓派控制单片机reset的方法对付过去的。

后来用ChibiOS重写了,ChibiOS在USB VCP这块封装处理的很好,然后就没有出现无法通讯的问题了。
再到今天用libopencm3,重新好好看了一下圈圈的玩转USB和black magic probe的代码,才终于理解了USB通讯的一丢丢细节和这些库的处理框架。

现在让我用STM32做USB的东西,就不会是点几下鼠标,然后听天由命了。

feixiang20 发表于 2018-9-11 22:50:57

一般都是自动配置的吧,如果不行,是不是缺驱动

Cortexxx 发表于 2018-9-12 09:04:45

加大 堆栈?

jyl518-283289 发表于 2018-9-12 10:15:33

解决了,谢谢上面各位。

mihu525 发表于 2018-12-1 00:54:27

jyl518-283289 发表于 2018-9-12 10:15
解决了,谢谢上面各位。

您好,我也遇到了类似的问题,我选的直接就是HID,但是显示由于“该设备有问题,Windows 已将其停止。 (代码 43)”,您能告诉我一下,您是怎么解决的吗

rfvgy456 发表于 2019-1-11 15:04:04

mihu525 发表于 2018-12-1 00:54
您好,我也遇到了类似的问题,我选的直接就是HID,但是显示由于“该设备有问题,Windows 已将其停止。 ( ...

同问,:lol
页: [1]
查看完整版本: Custom Human Interface Device Class(HID)